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

时间:2014-03-31 11:43:32

标签: javascript regex

如何修改此电子邮件的正则表达式?目前我的正则表达式不允许使用撇号:

"^[A-Za-z0-9_\\-\\.]+[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$";

现在我想要添加撇号,但请求只允许@符号前的1个撇号。

我试着用这个:

"^([A-Za-z0-9_\\-\\.]+[']{0,1})+[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$";

它允许撇号输入,但是我可以在@符号

之前输入超过1个撇号

结果:

test''test@yahoo.com - >不允许

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

预期结果是@符号前只允许一个撇号。

1 个答案:

答案 0 :(得分:0)

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

"^([A-Za-z0-9_\\-\\.]*?)'?([A-Za-z0-9_\\-\\.]+)[@]([A-Za-z0-9\\-\\.]+)+[\\.]([A-Za-z]{2,4})$";

它的工作方式是 - 它允许可选字符,然后是可选的撇号,然后是非可选字符。

唯一的缺点是你不能拥有'在@之前的权利(撇号后至少2个字符)这可以调整得更多,但我真的没有看到任何一点