如何只替换每场比赛的第一次出现?
实施例
以下字符串
AbstractAuthenticationProcessingFilter
替换后应该像:
var toReplace='href="/3" href="/3/a" href="a/3" href="h/3/a/3/b"'
我使用这个正则表达式
'href="*" href="*/a" href="*" href="*/a/3/b"'
但结果如下:
toReplace.replace(/(href=")[^"]*(\/3)/,'$1*')
该案例中的最后一个href变为'href="*" href="*/a" href="*" href="*/b" '
有什么想法吗?
答案 0 :(得分:3)
[^"]*
会尝试匹配所有可能的匹配。
使用非贪婪/懒惰的正则表达式
/(href=")[^"]*?(\/3)/
^
|
var toReplace = 'href="/3" href="/3/a" href="a/3" href="h/3/a/3/b"';
var replacedString = toReplace.replace(/(href=")[^"]*?(\/3)/gi, '$1*');
document.write(replacedString);