JavaScript正则表达式测试没有使用属性进行测试

时间:2016-07-07 16:43:04

标签: javascript regex

我试图测试不以特定单词开头的单词字符串,

var content = 'special-src="http://www.link.com" ';
var src = new RegExp(/\b(?!special-)\w*src=*\b/g);
console.log(src.test(content));

这应该是假的,但不是。

但是,如果我从正则表达式和内容中删除 - 结果很好,所以我猜这是一种逃避问题?

2 个答案:

答案 0 :(得分:1)

您正在寻找的是负面的后视(?<!special-),而不是负面的预测(?!special-)。我已经在Regex Workbench中使用了它,但是Javascript本身并不支持它。

这种方法看似可行:http://davidchin.me/blog/simulate-regex-lookbehind-in-javascript/

答案 1 :(得分:0)

尝试:

var content = 'special-src="http://www.link.com" ';
var src = /^(?!special\-)\w*src=.*$/g;
console.log(src.test(content));

<强>更新

表达式中有错误,应该是!?而不是?!。正确的代码是

var content = 'special-src="http://www.link.com" ';
var src = /^(!?special\-)\w*src=.*$/g;
console.log(src.test(content));