正则表达式javascript结果与预期不同
我有这个正则表达式正则表达式javascript结果与预期不同,javascript,regex,Javascript,Regex,我有这个正则表达式 var reg = new RegExp('["\\>]{1}\\$([^"\\<\\> ]*)["\\<]{1}', 'g'); var reg=new RegExp('[“\\>]{1}\\\$([^“\\]*)[“\\RegExp.prototype.exec()只要返回匹配的第一个匹配项,就必须在循环中调用它以获取所有匹配项 更简单的方法是使用String.prototype.match(),它返回所有匹配项的数组 如果还需要获取捕获组,则
var reg = new RegExp('["\\>]{1}\\$([^"\\<\\> ]*)["\\<]{1}', 'g');
var reg=new RegExp('[“\\>]{1}\\\$([^“\\]*)[“\\RegExp.prototype.exec()
只要返回匹配的第一个匹配项,就必须在循环中调用它以获取所有匹配项
更简单的方法是使用String.prototype.match()
,它返回所有匹配项的数组
如果还需要获取捕获组,则只需使用exec()
var reg=new RegExp('[“>]\\$[^”]*[“方法仅返回第一个事件,如果要返回所有事件,请使用:
var reg=new RegExp('[>“]\\$([^“]*)[”您应该将HTML文本转换为DOM并对其进行解析
var div=document.createElement('div');
div.innerHTML='$name';
var结果=[];
结果.push(div.querySelector('span').innerText);
var src=Array.from(div.querySelectorAll('img')).map(img=>img.getAttribute('src'));
result=result.concat(src);
console.log(result);
避免在HTML文本中使用正则表达式。不要在HTML文本中使用正则表达式。仅供参考,您不需要转义
和,而且您实际上永远不需要{1}
@Barmar没有区别,只是一个首选项。。。
'<span>$name</span><img src="$images[0].src"><img src="$images[1].src"><img src="$images[2].src">'