如何将其转换为单行JavaScript正则表达式?
html.replace(/src="(.*?)"/gi, function($1)
{ return $1.replace(/(abc.*?)\/abc/gi, "abc");
});
上面的代码块应该对我想要完成的内容不言自明,但我会详细说明。
我想要完成的是将此正则表达式/src="(.*?)"/的所有匹配替换为包含子字符串:abc [random_characters] / abc到abc。例如
src =“abc [random_characters] / abc [random_characters]”=> SRC = “ABC [random_characters]”
编辑:没有匿名函数调用或回调的单行程序。
编辑:解决方案
html.replace(/src="abc(?:.*?)\/(abc[^"]+)"/gi, "src=\"$1\"");
答案 0 :(得分:2)
使用反向引用:
html.replace(/src="(abc[^\/]*\/?)+"/gi, 'src="$1"');
(abc[^\/]*\/?)
- 匹配abc +随机字符(/
除外);
"$1"
- 对已捕获群组的反向引用。
但是,我不太确定它是否满足您的要求。您对问题的描述有点不一致。