Mil*_*loš 0 javascript regex email-validation
我有这个正则表达式来匹配字符串中的电子邮件地址。
[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})
Run Code Online (Sandbox Code Playgroud)
它不是世界上最好的正则表达式,但对我来说已经足够了。
当我将它与 javascript 一起使用时:
var emails = string.match("[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})");
Run Code Online (Sandbox Code Playgroud)
我只匹配第一个电子邮件地址,这是正常的,因为我没有使用 g 修饰符。
问题是,当我像这样使用 g 修饰符时:
var emails = email[0].match("[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+(\.[a-zA-Z0-9,!#\$%&'\*\+/=\?\^_`\{\|}~-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*\.([a-zA-Z]{2,})g");
Run Code Online (Sandbox Code Playgroud)
var emails 为空,所以我的匹配不起作用。
如果可以,请帮我解决这个问题。
谢谢你。
尝试 :
var emails = yourString.match(/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi);
Run Code Online (Sandbox Code Playgroud)