Làm cách nào để kiểm tra chuỗi để đảm bảo chuỗi chỉ chứa số, chữ cái hoặc dấu cách?
Trả lời
Cách đơn giản nhất để sử dụng nó một biểu thức chính quy:
Regular Expression for alphanumeric and underscores
Sử dụng biểu thức thông thường trong .net:
http://www.regular-expressions.info/dotnet.html
var regexItem = new Regex("^[a-zA-Z0-9 ]*$");
if(regexItem.IsMatch(YOUR_STRING)){..}
String test_string = "tesintg#[email protected]#";
if (System.Text.RegularExpressions.Regex.IsMatch(test_string, "^[a-zA-Z0-9\x20]+$"))
{
// Good-to-go
}
Một ví dụ có thể được tìm thấy ở đây: http://ideone.com/B1HxA
Sử dụng các biểu thức thông thường bên dưới để xác nhận một chuỗi để chắc chắn rằng nó chứa số, chữ cái, hoặc chỉ không gian:
[a-zA-Z0-9 ]
string s = @"$KUH% I*$)OFNlkfn$";
var withoutSpecial = new string(s.Where(c => Char.IsLetterOrDigit(c)
|| Char.IsWhiteSpace(c)).ToArray());
if (s != withoutSpecial)
{
Console.WriteLine("String contains special chars");
}
Nếu danh sách các ký tự được chấp nhận là khá nhỏ, bạn có thể sử dụng cụm từ thông dụng như sau:
Regex.IsMatch(items, "[a-z0-9 ]+", RegexOptions.IgnoreCase);
Cụm từ thông dụng được sử dụng ở đây sẽ tìm bất kỳ ký tự nào từ az và 0-9 bao gồm dấu cách (bên trong dấu ngoặc vuông []), có một hoặc nhiều ký tự này (dấu +) có thể sử dụng * cho 0 hoặc nhiều hơn). Tùy chọn cuối cùng cho bộ phân tích cú pháp regex bỏ qua trường hợp.
Điều này sẽ không thành công trên bất kỳ thứ gì không phải là chữ cái, số hoặc không gian. Để thêm nhiều ký tự hơn vào danh sách may mắn, hãy thêm nó vào trong dấu ngoặc vuông.
đơn giản:
function HasSpecialChars(string yourString)
{
return yourString.Any(ch => ! Char.IsLetterOrDigit(ch))
}
Hãy thử cách này.
public static bool hasSpecialChar(string input)
{
string specialChar = @"\|!#$%&/()=?»«@£§€{}.-;'<>_,";
foreach (var item in specialChar)
{
if (input.Contains(item)) return true;
}
return false;
}
- 1. Ruby: Thoát các ký tự đặc biệt trong một chuỗi
- 2. jQuery: Kiểm tra xem các ký tự đặc biệt có tồn tại trong chuỗi
- 3. làm thế nào để kiểm tra các ký tự đặc biệt php
- 4. In các ký tự đặc biệt trong php
- 5. Kiểm tra các ký tự lặp lại trong một chuỗi
- 6. preg_match ký tự đặc biệt
- 7. Json_decode với các ký tự đặc biệt
- 8. Cách kiểm tra xem chuỗi có ít nhất một chữ cái, số và ký tự đặc biệt trong php
- 9. MySQL Chèn ký tự đặc biệt
- 10. Các ký tự đặc biệt của Android
- 11. Ký tự đặc biệt trong SQL
- 12. Ký tự đặc biệt trong Android sms
- 13. wget và các ký tự đặc biệt
- 14. mailto ký tự đặc biệt
- 15. Thoát các ký tự HTML đặc biệt trong Python
- 16. Thoát khỏi các ký tự đặc biệt trong RegEx?
- 17. Kiểm tra xem một chuỗi có chứa một chuỗi đặc biệt trong Velocity
- 18. Chuỗi ký tự mà không phải thoát khỏi các ký tự đặc biệt?
- 19. ký tự đặc biệt trong sed
- 20. file_get_contents - ký tự đặc biệt trong URL
- 21. Regex để tìm các ký tự đặc biệt trong chuỗi có một số ngoại lệ
- 22. Thoát tất cả các ký tự đặc biệt trong một chuỗi được gửi bởi jquery ajax
- 23. Ký tự đặc biệt trong XML
- 24. Maven lọc garbling ký tự đặc biệt
- 25. FOR XML PATH (''): Ký tự "đặc biệt"
- 26. Regex cho các tên có ký tự đặc biệt (Unicode)
- 27. Hỗ trợ các ký tự đặc biệt với str_word_count()
- 28. Đếm ký tự đặc biệt UTF-8
- 29. Làm thế nào để kiểm tra xem một nhân vật đặc biệt tồn tại trong một mảng ký tự
- 30. Tìm kiếm các ký tự đặc biệt trong Google
Tại sao câu trả lời này không được bình chọn? Có vẻ đúng và nhanh với tôi. Cách beter hơn lặn vào thế giới regex cho một vấn đề dễ dàng như vậy –
@MarcelloGrechiLins Regex là hoàn toàn hợp lệ và có khả năng nhanh hơn khi sử dụng một Regex biên dịch và tái sử dụng nó trên một số lượng lớn các chuỗi. Như thường lệ với phát triển phần mềm, có sự cân bằng. :-) –
Tôi thực sự sẽ bỏ phiếu này - chỉ với thử nghiệm tối thiểu, nó mang lại sự thật cho \ n, và tôi nghi ngờ bất cứ ai muốn điều đó. Regex ít nhất sẽ giới hạn nó thành các ký tự đặc biệt thực tế. – Charles