2012-07-17 22 views
2

我試圖檢測輸入是否不是英文字符,將不允許輸入,我使用下面的代碼來驗證輸入。如果輸入是非英文的,代碼工作正常,例如,','你好'。當輸入包含英文字符和非英文字符時,下面的代碼將允許輸入通過,我不希望發生這種情況。如果在輸入中檢測到任何非英文字符,我如何禁止輸入?如何檢測不是英文的輸入?

If Not Regex.IsMatch(Edt.Text, "[A-Za-z0-9]") Then 
End If 
+3

沒有「英語字符」這樣的東西。這些是拉丁文字母和阿拉伯數字。 – Hassan 2012-07-17 03:45:58

+0

通過允許[A-Za-z],你不僅限於英語,而且還有許多使用拉丁字母的語言。例如,「Hola」是西班牙文字。 – g13n 2012-07-17 03:55:15

回答

1

使用這個表達式:

^[A-Za-z0-9]*$ 
+0

此外,拉丁文字母和阿拉伯數字。我如何允許像空格,!,&,^,()等字符? – 2012-07-17 04:09:22

+0

@ Blueguy33,在'[]'之間插入它們,即:'^ [A-Za-z0-9()!^] * $' – 2012-07-17 04:14:34

+0

但是, - ,\和空格不能以這種方式插入。如何允許其中3個? – 2012-07-17 04:24:23

1

那如果Edt.Text包含任何拉丁字母或阿拉伯文數字Regex.IsMatch調用會成功。

首先,您需要更清楚地定義問題;尤其是,您需要確定哪些字符是准許的(考慮空格和標點符號)。

然後,你將需要修改的正則表達式,因此整個字符串匹配,大概是這樣的:

"^[something]*$" 

其中something被留作練習。

+0

Thanks for你的建議。 – 2012-07-17 04:25:15

相關問題