我的正则表达式在c#中的问题与javascript一起使用

时间:2014-08-22 07:16:27

标签: c# javascript regex

我使用此正则表达式进行电子邮件验证

/.+@.+\..+/i

我无法让它在我的服务器端工作。到目前为止我试过这个

var pattern = @"^.+@.+\..+i$";
var pattern = @".+@.+\..+i";

我得到0个结果trying it(也在我的代码中)。有任何想法吗?不确定它是否有帮助,但要求允许a@b.c这样1个字符,一个@和至少一个'。'。

3 个答案:

答案 0 :(得分:1)

问题似乎是i;你的意思并不是“以i结尾”(即i$)等等 - 在javascript中,尾随.../i表示“不区分大小写” - 但是没有任何内容可供< em>是区分大小写,所以只需删除i(从两者都可以,但至少从C#中删除)。您还应该删除您从无处添加的^$。为了完整起见,RegexOptions.IgnoreCase是您忽略.NET Regex中的案例的方式。

var pattern = @".+@.+\..+";

答案 1 :(得分:1)

只需从正则表达式中删除i字符,然后将开始,结束锚点添加到模式中,

@"^.+@.+\..+$";

DEMO

答案 2 :(得分:0)

<强> JavaScript的:

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}

<强> C#:

bool validateEmail(string email) 
{ 
    var re = new Regex(@"^(([^<>()\[\]\.,;:\s@""]+(\.[^<>()\[\]\.,;:\s@""]+)*)|("".+""))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$") ;
    return re.IsMatch(email);
}

见这里:Validate email address in JavaScript?