2010-12-21 57 views
21

如何檢查字符串以確保其僅包含數字,字母或空格?

回答

4
String test_string = "tesintg#[email protected]#"; 
if (System.Text.RegularExpressions.Regex.IsMatch(test_string, "^[a-zA-Z0-9\x20]+$")) 
{ 
    // Good-to-go 
} 

一個例子可以在這裏找到:http://ideone.com/B1HxA

2

使用下面的正則表達式驗證字符串,以確保它包含數字,字母,或僅空間:

[a-zA-Z0-9 ] 
12
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"); 
} 
3

如果接受字符列表是非常小的,你可以使用正則表達式是這樣的:

Regex.IsMatch(items, "[a-z0-9 ]+", RegexOptions.IgnoreCase); 

此處使用的正則表達式會查找az和0-9中的任何字符,包括空格(方括號[]中的內容),還有一個或多個這些字符(+符號 - 你可以使用*爲0或更多)。最後的選項告訴正則表達式解析器忽略大小寫。

這將無法在任何不是字母,數字,或空間。要將更多字符添加到祝福列表中,請將其添加到方括號中。

34

簡單:

function HasSpecialChars(string yourString) 
{ 
    return yourString.Any(ch => ! Char.IsLetterOrDigit(ch)) 
} 
+1

爲什麼不是這個答案upvoted?對我來說似乎是正確和快速的。方式比跳水尤爲明顯進入正則表達式世界這樣一個簡單的問題 – 2015-02-04 16:21:58

3

嘗試這種方式。

public static bool hasSpecialChar(string input) 
    { 
     string specialChar = @"\|!#$%&/()=?»«@£§€{}.-;'<>_,"; 
     foreach (var item in specialChar) 
     { 
      if (input.Contains(item)) return true; 
     } 

     return false; 
    }