JS Regex允许使用星号的电子邮件

时间:2013-07-29 06:56:53

标签: javascript regex

我有一个JS Regex,用于检查电子邮件地址的有效性。这一切都很好,但最近我注意到它允许星号*作为电子邮件的有效部分。我知道有些用户可能正在使用我不希望我的应用程序允许这样做。

到目前为止,代码是:

  RegExp = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/

请注意,建议如何更改此设置,以便*成为用户提供的电子邮件中的无效字符。

1 个答案:

答案 0 :(得分:3)

只需从正则表达式中删除转义的星号即可。然后你的正则表达式会变成:

 RegExp = /^((([a-z]|[0-9]|!|#|$|%|&|'|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/

[编辑]

不要删除所有星号。仅删除转义星号。