使用正则表达式使用字符串替换在JavaScript中引用嵌套组
作者:互联网
由于jQuery处理脚本标记的方式,我发现有必要使用正则表达式进行一些HTML操作(是的,我知道……不是理想的工作工具).不幸的是,似乎我对JavaScript中捕获的组如何工作的理解存在缺陷,因为当我尝试这样做时:
var scriptTagFormat = /<script .*?(src="(.*?)")?.*?>(.*?)<\/script>/ig;
html = html.replace(
scriptTagFormat,
'<span class="script-placeholder" style="display:none;" title="$2">$3</span>');
脚本标记将替换为跨度,但结果标题属性为空. $2不应该匹配脚本标记的src属性的内容吗?
解决方法:
群体的嵌套是无关紧要的;它们的编号严格取决于正则表达式中它们的开括号的位置.在您的情况下,这意味着它的组#1捕获整个src =“value”序列,组#2捕获仅值组件.
标签:javascript,regex,replace,regex-group 来源: https://codeday.me/bug/20190827/1735940.html