Javascript 通过电子邮件Regex在@symbol之前只允许1个字符的撇号

Javascript 通过电子邮件Regex在@symbol之前只允许1个字符的撇号,javascript,regex,Javascript,Regex,如何为电子邮件修改此正则表达式?当前my regex不允许使用撇号: "^[A-Za-z0-9_\\-\\.]+[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$"; 现在我想添加撇号,但是请求只允许在@symbol之前添加1个撇号 我试着用这个: "^([A-Za-z0-9_\\-\\.]+[']{0,1})+[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$"; 它允许撇号输入,但我可以在@symbol之前输

如何为电子邮件修改此正则表达式?当前my regex不允许使用撇号:

"^[A-Za-z0-9_\\-\\.]+[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$";
现在我想添加撇号,但是请求只允许在@symbol之前添加1个撇号

我试着用这个:

"^([A-Za-z0-9_\\-\\.]+[']{0,1})+[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$";
它允许撇号输入,但我可以在@symbol之前输入多个撇号

结果:

测试“test@yahoo.com
->不允许

test'tes't@yahoo.com
->允许(预期不允许)


预期结果是@symbol前面只允许有一个撇号。

这里是您的正则表达式的修改版本:

"^([A-Za-z0-9_\\-\\.]*?)'?([A-Za-z0-9_\\-\\.]+)[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$";
它的工作方式是-它允许可选字符,然后是可选撇号,然后是非可选字符


唯一的缺点是不能在@之前加上“right before”(撇号后面至少有2个字符),这可以做更多的调整,但我看不出有任何意义

这是一个修改过的正则表达式还是另一个正则表达式?如果只是稍微修改一下,那么最好能包含您所更改的内容。它是一个修改过的正则表达式。它有可选字符+可选撇号+字符。唯一的缺点是你不能在@之前加上一个“right before”(撇号后面至少有2个字符),这可以做更多的调整,但我真的看不出有任何意义。是的,在你的答案中加上这一点可能是一个好主意,让它更清楚。可能重复的可能是无法理解电子邮件语法:)