Sayı, harf veya boşluk içerdiğinden emin olmak için bir dizeyi nasıl kontrol ederim?
cevap
o normal bir ifade kullanmak için en kolay yolu:
http://www.regular-expressions.info/dotnet.html
: .net normal ifadeler kullanmaRegular Expression for alphanumeric and underscores
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
}
bir örneği burada bulunabilir: http://ideone.com/B1HxA
kullanımda altında düzenli İfade o sayı, harf veya sadece boşluk içerdiğinden emin olması bir dize doğrulamak için:
[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");
}
Kabul edilebilir karakterlerin listesi oldukça küçükse, şu şekilde normal bir ifade kullanabilirsiniz:
Burada kullanılan normal ifade, bir boşluk (köşeli parantez içinde []) bulunan az ve 0-9 arasındaki herhangi bir karakteri arar, bu karakterlerden biri veya daha fazlası vardır (+ işareti - siz 0 veya daha fazla için * kullanabilirsiniz. Son seçenek, regex ayrıştırıcısının vakayı görmezden gelmesini söyler.
Bu, harf, sayı veya boşluk olmayan hiçbir şeyde başarısız olur. Kutsanmış listeye daha fazla karakter eklemek için, köşeli parantez içine ekleyin.
Basit:
function HasSpecialChars(string yourString)
{
return yourString.Any(ch => ! Char.IsLetterOrDigit(ch))
}
bu şekilde deneyin.
public static bool hasSpecialChar(string input)
{
string specialChar = @"\|!#$%&/()=?»«@£§€{}.-;'<>_,";
foreach (var item in specialChar)
{
if (input.Contains(item)) return true;
}
return false;
}
- 1. Yalancı olup olmadığını kontrol edin
- 2. Tuşların Harf/Rakam/Özel Simgesi olup olmadığını kontrol edin
- 3. Tablonun var olup olmadığını kontrol edin C#
- 4. Yolun ağda olup olmadığını kontrol edin
- 5. Türün bir arabirim olup olmadığını kontrol edin
- 6. Uzak makinede dosya olup olmadığını kontrol edin
- 7. Anahtarın sözlükte olup olmadığını kontrol edin. Değilse,
- 8. FinderSync uzantısı seçili olup olmadığını kontrol edin
- 9. Rest API'da kayıt olup olmadığını kontrol edin.
- 10. Java'da ResultSet boş olup olmadığını kontrol edin
- 11. Bir sayfanın açık olup olmadığını kontrol edin
- 12. img'nin src olup olmadığını kontrol edin
- 13. Ortam değişkeni ayarlanmış olup olmadığını kontrol edin
- 14. javascript css taşma olup olmadığını kontrol edin
- 15. $ viewContentLoaded Başarılı olup olmadığını kontrol edin
- 16. Makinemin internet erişimi olup olmadığını kontrol edin
- 17. Kaydedilecek bekleyen değişiklikler olup olmadığını kontrol edin
- 18. Tablo üzerinde kısıtlama olup olmadığını kontrol edin
- 19. Veri çerçevesinin mevcut olup olmadığını kontrol edin
- 20. CSS @media Webkit olup olmadığını kontrol edin
- 21. Öğenin animasyonlu olup olmadığını kontrol edin CSS3
- 22. Java'da sürekli değişiklik olup olmadığını kontrol edin?
- 23. Nesnenin nesne listesinde olup olmadığını kontrol edin
- 24. Stdin boş olup olmadığını kontrol edin
- 25. Ruby websocket Kullanıcının olup olmadığını kontrol edin
- 26. Listenin bir türü olup olmadığını kontrol edin?
- 27. Sayısal dizinin maskelenmiş olup olmadığını kontrol edin
- 28. Öğenin selenyumda tıklanabilir olup olmadığını kontrol edin
- 29. Dize sayısal olup olmadığını kontrol edin
- 30. Geçtiğimiz günlerde tarih olup olmadığını kontrol edin
Bu yanıt neden kesilmiyor? Bana doğru ve hızlı görünüyor. Böylesi kolay bir problem için normal bir dünyaya dalmaktan daha iyi bir yoldur. –
@MarcelloGrechiLins Regex, derlenmiş bir Regex kullanıldığında ve büyük bir dizgiden tekrar kullanıldığında tamamen geçerli ve muhtemelen daha hızlıdır. Yazılım geliştirme ile her zamanki gibi ticaret var. :-) –
Aslında bunu oylamaya çalışacağım - sadece minimum testle, \ n için gerçeği geri getiriyor ve bunun kimsenin bundan şüphelenmesini istiyorum. Regex en azından gerçek özel karakterlerle sınırlayacaktır. – Charles