Javascript正则表达式不在脚本上工作,但在控制台上工作
我尝试只验证以下4个数字:Javascript正则表达式不在脚本上工作,但在控制台上工作,javascript,regex,Javascript,Regex,我尝试只验证以下4个数字: /^\d{4}$/.test('1234'); /^\d{4}$/.test(1234); 它在上面的页面上工作,但当我在脚本上使用它时,它不工作: var reg = new RegExp('^\d{4}$/'); reg.test(1234); reg.test('1234'); 两者都返回错误 如果我在浏览器控制台上进行如下测试: /^\d{4}$/.test('1234'); /^\d{4}$/.test(1234); 两者都在回归真实 我错过了什么
/^\d{4}$/.test('1234');
/^\d{4}$/.test(1234);
它在上面的页面上工作,但当我在脚本上使用它时,它不工作:
var reg = new RegExp('^\d{4}$/');
reg.test(1234);
reg.test('1234');
两者都返回错误
如果我在浏览器控制台上进行如下测试:
/^\d{4}$/.test('1234');
/^\d{4}$/.test(1234);
两者都在回归真实
我错过了什么 问题是因为您的
RegExp
没有正确初始化
您可以执行以下任一操作:
// Note the \\ to escape the backslash
var reg = new RegExp('^\\d{4}$');
或
你可以直接在你的代码中使用
/^\d{4}$/.test(1234)
,如果你仍然需要这个变量,你应该像这样初始化它var reg=RegExp(/^\d{4}$/)
看起来你缺少了一个斜杠'^\d{4}$/'
你在脚本和控制台中使用了不同的代码。这就是为什么你会得到不同的结果。@RobbieMilejczak-close。对于RegExp
构造函数,不能在字符串参数中使用开头斜杠和结尾斜杠。另外,\d
需要在RegExp
字符串参数中对其斜杠进行转义(即,\\d
)。基本上,金良在下面的回答中就做到了这一点