看起来很简单,但无法弄清楚为什么这个javascript代码无法正常工作返回false,当期待真实时) - 我猜它必须用转义字符做一些事情?有人可以帮我写一个JS块,如果有空格,它会返回true吗?
var inValid = new RegExp("[\s]");
var value = "test space";
var k = inValid.test(value);
alert(k);
Run Code Online (Sandbox Code Playgroud)
jfr*_*d00 22
您不需要括号,您需要转义反斜杠(如果使用字符串形式)并且内置的正则表达式语法更容易,因为在使用内置的正则表达式语法时您不必转义反斜杠.
var inValid = /\s/;
var value = "test space";
var k = inValid.test(value);
alert(k);Run Code Online (Sandbox Code Playgroud)
如果要从字符串文字创建RegExp对象,则需要转义反斜杠:
var inValid = new RegExp("[\\s]");
Run Code Online (Sandbox Code Playgroud)
或者,您可以只使用以下内容:
var inValid = /\s/;
Run Code Online (Sandbox Code Playgroud)
这使用了正则表达式文字,因此不需要转义反斜杠,并且这里不需要字符类,因此我也删除了方括号。