问题与我的正则表达式在c#中,工作与javascript

Issues with my regex in c#, works with javascript

本文关键字:工作 javascript 我的 正则表达式 问题      更新时间:2023-09-26

我使用这个正则表达式来验证我的电子邮件

/.+@.+'..+/i

我不能让它工作在我的服务器端虽然。我试过了

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

我得到0的结果尝试它(也在我的代码)。什么好主意吗?不确定它是否有帮助,但要求允许a@b.c所以1个字符,一个@和至少一个'。'.

问题似乎是i;你不是指"以i结尾"(这是i$),等等-在javascript中,末尾的.../i意味着"不区分大小写"-但是没有什么可以让区分大小写,所以只是删除i(从两者都可以,但至少从c#)。您还应该删除您从任何地方添加的^$。为了完整起见,RegexOptions.IgnoreCase是如何在。net Regex中忽略大小写的。

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

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

@"^.+@.+'..+$";
演示

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);
}

见这里:在JavaScript中验证电子邮件地址?