带有空格的Javascript RegExp.test()在不应该

时间:2016-08-06 19:35:55

标签: javascript regex email-validation

  

恕我直言这个问题被错误地标记为重复指向一个问题,这个问题需要我知道我需要在使用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>

0 个答案:

没有答案