0

我在正则表达式方面不是很有经验,所以这就是我问你的原因:) 我的问题是我在验证电子邮件时使用这种模式。

/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zAZ\-0-9]+\.)+[a-zA-Z]{2,}))$/

添加到此模式以禁止阿拉伯字符是什么?

4

3 回答 3

6

不应该使用正则表达式来验证电子邮件。

验证电子邮件地址的正确方法是使用如下MailAddress类:

try 
{
    string address = new MailAddress(address).Address;
} 
catch(FormatException) 
{
    //address is invalid
}

关于问题本身,您看到它是一个有效的电子邮件地址后 - 您可以检查阿拉伯字符

于 2012-11-12T08:42:27.190 回答
0

使用字符属性:

/\p{sc=Arabic}/

匹配所有阿拉伯字符。

然后反转表达式匹配的字符

/[^\p{sc=Arabic}]/
于 2012-11-20T09:58:24.297 回答
0

我打赌你可以用括号表达式(又名字符集又名字符类)和 unicode 转义(在javascriptC#中可用)来做到这一点:

[^\u####-\u%%%%]

... 其中主题标签 ( ####) 表示第一个阿拉伯字符(即具有最低 unicode 值的字符),百分号 ( %%%%) 表示最后一个阿拉伯字符(即具有最高 unicode 值的字符)。

维基百科告诉我有多个范围的阿拉伯字符,所以你需要重复上面的片段。

于 2012-11-12T08:46:02.207 回答