Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript正则表达式测试未以属性开头_Javascript_Regex - Fatal编程技术网

JavaScript正则表达式测试未以属性开头

JavaScript正则表达式测试未以属性开头,javascript,regex,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)); 这应该是一个错误,但事实并非如此 但是,如果我从正则表达式和内容中删除-,结果很好,因此我猜这是一种逃避问题?尝试: var content = 'special-src="http://w

我试着测试不是以特定单词开头的字符串

var content = 'special-src="http://www.link.com" ';
var src = new RegExp(/\b(?!special-)\w*src=*\b/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));
更新

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

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

你要找的是一个负的lookbehind
(?),而不是负的lookbehind
(?!special-)
。我已经在Regex工作台上运行了它,但是Javascript本机不支持它


这种方法看起来可能有效:

为什么要使用
global
标志?是否需要测试字符串中的每个单词,而不是字符串本身?@VisioN是的,我必须测试所有单词;我建议您添加更多有问题的示例,以明确它是否必须是regex?如果在src它不会返回真值