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