我正在使用正则表达式替换html文件中的图片源网址。
我想例如替换img/
为<?= $folder ?>/img/
问题:当我多次运行正则表达式时,它将img/
再次替换,创建:
<?= $folder ?>/<?= $folder ?>/img
..等等。有没有办法告诉正则表达式替换(img/
如果尚未替换)<?= $folder ?>/img
?
我正在尝试/^(?:(?!<?= $folder ?>/img).)*$/
但不确定如何首先匹配并检查它是否尚未包含<?= $folder ?>/img
如果您更喜欢正则表达式,请尝试:
function matchIfNot(str) {
var newstr = str.replace(/^(?!(<\?=\s\$folder\s\?>\/))(img\/)/g, "<?= $folder ?>/img/")
alert("Old string: " + str + "\nNew string: " + newstr)
}
matchIfNot("<?= $folder ?>/img/")
matchIfNot("img/")
输出:
Old string: <?= $folder ?>/img/
New string: <?= $folder ?>/img/
Old string: img/
New string: <?= $folder ?>/img/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句