回答
使用表達式:
^[a-zA-Z0-9]*$
即: 使用System.Text.RegularExpressions;
Regex r = new Regex("^[a-zA-Z0-9]*$");
if (r.IsMatch(SomeString)) {
...
}
^\w+$
將使a-zA-Z0-9_
使用^[a-zA-Z0-9]+$
不允許下劃線。
注意,這兩個要求的字符串不爲空。使用*
代替+
允許空字符串。
你可以用一個擴展功能,而不是一個正則表達式做很容易...
public static bool IsAlphaNum(this string str)
{
if (string.IsNullOrEmpty(str))
return false;
for (int i = 0; i < str.Length; i++)
{
if (!(char.IsLetter(str[i])) && (!(char.IsNumber(str[i]))))
return false;
}
return true;
}
根據註釋:) ...
public static bool IsAlphaNum(this string str)
{
if (string.IsNullOrEmpty(str))
return false;
return (str.ToCharArray().All(c => Char.IsLetter(c) || Char.IsNumber(c)));
}
雖然我認爲基於正則表達式的解決方案是大概是我走的路,我會試圖將它封裝在一個類型中。
public class AlphaNumericString
{
public AlphaNumericString(string s)
{
Regex r = new Regex("^[a-zA-Z0-9]*$");
if (r.IsMatch(s))
{
value = s;
}
else
{
throw new ArgumentException("Only alphanumeric characters may be used");
}
}
private string value;
static public implicit operator string(AlphaNumericString s)
{
return s.value;
}
}
現在,當你需要一個有效的字符串,可以有方法的簽名需要AlphaNumericString,並知道如果你只有一個,它是有效的(除了空值)。如果有人試圖傳入未經驗證的字符串,則會產生編譯器錯誤。
你可以得到發燒友和執行所有平等的運營商,或從普通OL」字符串的顯式的AlphaNumericString的,如果你的關心。
在.NET 4.0中,你可以使用LINQ:
if (yourText.All(char.IsLetterOrDigit))
{
//just letters and digits.
}
yourText.All
將停止執行並返回false
首次char.IsLetterOrDigit
報告false
自All
合同無法履行,然後。
注意!這個答案不嚴格檢查字母數字(通常爲A-Z,A-Z和0-9)。這個答案允許本地人物如åäö
。
更新2018年1月29日
上面只有語法當您使用具有正確類型的一個參數(在這種情況下char
)單一方法的工作。
要使用多個條件,你需要這樣寫:
if (yourText.All(x => char.IsLetterOrDigit(x) || char.IsWhiteSpace(x)))
{
}
我需要檢查A-Z,A-Z,0-9;沒有正則表達式(儘管OP要求正則表達式)。
在這裏混合各種答案和評論,並從https://stackoverflow.com/a/9975693/292060討論,這測試字母或數字,避免其他語言字母,並避免其他數字,如分數字符。
if (!String.IsNullOrEmpty(testString)
&& testString.All(c => Char.IsLetterOrDigit(c) && (c < 128)))
{
// Alphanumeric.
}
爲了檢查字符串既是一個字母和數字的組合,你可以重新寫@jgauffin答案使用.NET 4.0和LINQ如下:
if(!string.IsNullOrWhiteSpace(yourText) &&
(!yourText.Any(char.IsLetter) || !yourText.Any(char.IsDigit)))
{
// do something here
}
我奉勸不依賴於現成的內置代碼在.NET框架,試圖提出新的解決方案..這就是我所做的..
public bool isAlphaNumeric(string N)
{
bool YesNumeric = false;
bool YesAlpha = false;
bool BothStatus = false;
for (int i = 0; i < N.Length; i++)
{
if (char.IsLetter(N[i]))
YesAlpha=true;
if (char.IsNumber(N[i]))
YesNumeric = true;
}
if (YesAlpha==true && YesNumeric==true)
{
BothStatus = true;
}
else
{
BothStatus = false;
}
return BothStatus;
}
- 1. 只允許字母,數字,變音符號,+, - ,並在字符串
- 2. 如何驗證字符串是否爲字母數字
- 3. 如何限制TextView在Android中僅允許字母數字字符
- 4. 如何使用preg_match僅允許包含字母和數字字符的字符串?
- 5. 允許一些特殊字符和字母數字字符
- 6. 驗證django python允許的字符數
- 7. 如何驗證字母和數字或隻字母的字符串?
- 8. 表單驗證只允許英文字母字符
- 9. 如何驗證字符串只用於非字母字符jquery驗證
- 10. 如何在驗證整數值時允許空字符串
- 11. 如何只允許Python中的字符串中的數字,字母和某些字符?
- 12. 只允許在UITextView中的字母數字字符
- 13. 正則表達式允許數字,字符或字母數字但不是空字符串或特殊字符
- 14. jQuery - 乘以字母數字字符串
- 15. 字母數字字符串
- 16. 只允許數字字符
- 17. 如何以字母順序替換字符串中的字母
- 18. 字符串解析算法驗證數字和字母的字母
- 19. 如何將字符串拆分爲字母字符串和數字字符串?
- 20. 如何僅允許jQuery字符串中的某些特定字符
- 21. 如何驗證QlineEdit以允許只寫一個字符串或允許寫入數字
- 22. Membership.generatepassword的字母數字字符僅
- 23. 僅驗證數字字符Java
- 24. Jquery允許在字母數字驗證中使用空格
- 25. 如何驗證多行asp:TextBox中允許的最大字符數?
- 26. 字符串字段驗證以及javascript中的數字
- 27. 是否允許字符串以Java中的數字開頭
- 28. 只允許在文本框中使用字母字符的模型驗證
- 29. 如何從Java中的任何字符串獲取字母數字字符串?
- 30. Asp.Net中的數字驗證器(不允許除字符以外的輸入)
如何在JavaScript中,同樣的事情,我猜? – mrblah 2009-06-26 00:25:08
讓我們希望這隻用於英語國家...... – 2013-02-15 08:17:46
如果您清理數據庫名稱或類似內部的東西,你不會在意它是否不會在英語國家運行。 – 2014-07-03 08:04:50