恕我直言这个问题被错误地标记为重复指向一个问题,这个问题需要我知道我需要在使用RegExp构造函数时双重转义字符...我不知道,实际上答案是这个问题!
我正在使用Javascript正则表达式来验证我在emailregex.com上找到的不允许white space
的电子邮件。
当一个空格存在时,不幸地使用RegExp.test()返回true
但是在www.regex101.com上进行测试时不会这样做。
我一直在网上搜索什么可能会带来我的正则表达式的不良行为,但无法抓住它。
Bellow你会发现一个Snippet显示Javascript的问题。
非常感谢任何帮助,谢谢!
var regexp = new RegExp('^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$', 'i');
var emails = [
'example@domain.com',
'example two@domain.com',
'example@domain two.com'
];
emails.forEach(function(email, index) {
document.write(email + ' = ' + regexp.test(email) + ' -> ');
document.write(email.indexOf(' ') == -1 ? 'OK' : 'WRONG');
document.write('<br>');
});
Emails flaged as "WRONG" bellow return "true" in Javascript when using RegExp.test() although it does not when testing on <a href="https://www.regex101.com">https://www.regex101.com</a>
<br><br>