Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS正则表达式问题_Javascript_Regex_Validation - Fatal编程技术网

Javascript JS正则表达式问题

Javascript JS正则表达式问题,javascript,regex,validation,Javascript,Regex,Validation,我正在尝试验证电子邮件地址并使用类似的正则表达式: \b[a-z0-9._]+@[a-z0-9.-]+\.[a-z]+\b/i 在regexr.com上的测试表明它按预期工作,但当我尝试这样做时: var a = new RegExp("\b[a-z0-9._]+@[a-z0-9.-]+\.[a-z]+\b/i"); console.log(a.test("foo@bar.com")); 我得到false。我做错了什么?这个regexp是错误的吗?或者,可能是因为使用构造函数或其他东西构造它

我正在尝试验证电子邮件地址并使用类似的正则表达式:

\b[a-z0-9._]+@[a-z0-9.-]+\.[a-z]+\b/i
在regexr.com上的测试表明它按预期工作,但当我尝试这样做时:

var a = new RegExp("\b[a-z0-9._]+@[a-z0-9.-]+\.[a-z]+\b/i");
console.log(a.test("foo@bar.com"));
我得到
false
。我做错了什么?这个regexp是错误的吗?或者,可能是因为使用构造函数或其他东西构造它而出现了一些问题?

当使用构造函数时,您不在字符串中包含标志或正斜杠。您还需要转义任何反斜杠,因为正常的字符串转义规则适用

var a=newregexp(\\b[a-z0-9.\]+@[a-z0-9.-]+\\[a-z]+\\b“,i”);

文件。写(“”+a.test(“”)foo@bar.com") + '');RegExp
构造函数。但如上所述,字符串中既不包含正斜杠,也不包含标志。这不起作用,因为您需要双反斜杠。@torazaburo似乎可以做到这一点。你能解释一下,为什么我在使用构造函数时需要转义反斜杠,但如果我使用的是regexp文本,我就不需要这样做?@TristanTzara这是因为在
regexp
构造函数中,正常的字符串转义规则适用。这包括特殊字符类。