Javascript 如何防止正则表达式在@character之后验证双点
我在js中使用以下正则表达式Javascript 如何防止正则表达式在@character之后验证双点,javascript,regex,Javascript,Regex,我在js中使用以下正则表达式 ^[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$ 这将验证子域中的电子邮件(例如:myname@google.co.in) 不幸的是,双点也被验证为true,例如 myname@..in myname@domain..in 我知道零件@[a-zA-Z0-9.-]需要修改,但有点罢工。最好的方法是什么 TIA尝试使用: ^([\w+-]+\.)*[\w+-]+@([\w+-]+\.)*[\w+-]+\.[a-zA-Z
^[a-zA-Z0-9._+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$
这将验证子域中的电子邮件(例如:myname@google.co.in
)
不幸的是,双点也被验证为true,例如
myname@..in
myname@domain..in
我知道零件@[a-zA-Z0-9.-]
需要修改,但有点罢工。最好的方法是什么
TIA尝试使用:
^([\w+-]+\.)*[\w+-]+@([\w+-]+\.)*[\w+-]+\.[a-zA-Z]{2,4}$
我已经用char组中完全等效的\w
替换了[a-zA-Z0-9.]
注意,在正则表达式语言中,点
是一个特殊的字符,它匹配所有内容(除了换行符)。因此,要匹配文字点,需要对其进行转义。。
传奇人物:
字符串的开头^
零个或多个正则词(在加([\w+-]+\)*
和减+
中)由1个或多个字符组成,后跟一个文字点-
\。
一个或多个字符的正则词(加上[\w+-]+
)[+-]
文字字符@
与上述顺序相同([\w+-]+\)*[\w+-]+
文字点,后跟长度在2到4个字符之间的小写或大写字符序列李>\.[a-zA-Z]{2,4}
字符串的结尾$
^([a-zA-Z0-9._+-]+)(@[a-zA-Z0-9-]+)(.[a-zA-Z]{2,4}){2,}$
您可以在此处进行测试-您的电子邮件验证正则表达式不正确,而且不正确,因此请尝试使用预先构建的东西。正则表达式等价于
^(+.+)(@.+)([a-zA-Z]{2.4}){2,}$
。转义点
,因为它不只是匹配文字点(它现在匹配所有内容,使组中的其他字符冗余)。为什么会有这么多未使用的捕获组?按原样看它并不能解决运算问题…这个正则表达式实际上不需要在@
之后加一个点。