这可能吗?仅使用一个内联JavaScript regexp

时间:2014-12-12 23:17:08

标签: javascript regex

如何将其转换为单行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\"");

1 个答案:

答案 0 :(得分:2)

使用反向引用:

html.replace(/src="(abc[^\/]*\/?)+"/gi, 'src="$1"');
  • (abc[^\/]*\/?) - 匹配abc +随机字符(/除外);

  • "$1" - 对已捕获群组的反向引用。

但是,我不太确定它是否满足您的要求。您对问题的描述有点不一致。