![](/img/trans.png)
[英]Convert invalid string “1,5” to Single with “en-US” culture works
[英]How to check a string contains only en-us keyboard characters?
如何檢查一個字符串,它是否只包含鍵盤字符,即az、AZ、0-9,以及所有特殊字符(如~!@#$%^&*()_+|}{":?>< ,./';][=-) 僅在美國英語鍵盤中可用。即,用戶應該能夠從鍵盤輸入字符串而無需鍵入任何 ALT 鍵。我不熟悉 Regex 來過濾字符串這滿足我的要求。
英美鍵盤布局中立即(不帶 Alt)可用字符的代碼點在 32 到 126 之間。
在 C# 上,您可以通過執行完全跳過 Regex
input.All(c=> c >= 32 && c <= 126);
它只是驗證input
中的所有char
是否與范圍匹配。 從技術上講,由於字符編碼,單個 Unicode 字符可能涉及多個char
,但只要您檢查所有這些char
都在范圍內,就可以了。
或者如果你想要正則表達式:
Regex.IsMatch(input, @"^[\u0020-\u007E]*$"); //true on empty string
Regex.IsMatch(input, @"^[\u0020-\u007E]+$"); //must be at least one character
是一樣的, ^
指定匹配必須從字符串的開頭開始,括號內的所有內容指定范圍,在 32 到 126 之間,除了它們是用十六進制寫的, *
允許任何長度,+ 允許 1 到更多,和$
指定匹配必須覆蓋到字符串的結尾。
請注意,任何其他布局(英語-英國、國際英語等)的用戶都會對您的限制感到非常惱火。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.