看起来很简单,但无法弄清楚为什么这个javascript代码无法正常工作返回false,当期待真实时) - 我猜它必须用转义字符做一些事情?有人可以帮我写一个JS块,如果有空格,它会返回true吗?
var inValid = new RegExp("[\s]");
var value = "test space";
var k = inValid.test(value);
alert(k);
答案 0 :(得分:21)
您不需要括号,您需要转义反斜杠(如果使用字符串形式)并且内置的正则表达式语法更容易,因为在使用内置正则表达式时不必转义反斜杠语法。
var inValid = /\s/;
var value = "test space";
var k = inValid.test(value);
alert(k);
答案 1 :(得分:4)
如果要从字符串文字创建RegExp对象,则需要转义反斜杠:
var inValid = new RegExp("[\\s]");
或者您可以使用以下内容:
var inValid = /\s/;
这使用正则表达式文字,因此不需要转义反斜杠,并且不需要这里的字符类,所以我也删除了方括号。
答案 2 :(得分:4)
如果你想在那里匹配某些东西,但没有空格:
alert(/^\S+$/.test(value));
答案 3 :(得分:3)
你需要一个双重转义字符:
一个用于“s”,一个用于“\”本身:
var inValid = new RegExp("[\\s]");
答案 4 :(得分:-1)
var inValid = /^/\s/;
var value = "test value";
var k = inValid.test(value);
alert(k);