Javascript:将图片名称替换为html字符串中的正则表达式

时间:2019-05-16 12:33:00

标签: javascript regex

我正在尝试从HTML字符串替换图像名称(product-1-placeholder-href.png)。我试图正确使用所有正则表达式规则。但是,它仍然不匹配并替换字符串,我真的不知道为什么。

这是我的正则表达式:

var myStr = htmlContent;
var newStr = myStr.replace(/'product-1-placeholder-href\.png'/g, 'SOMETHINGIMPORTANT');
console.log(newStr.indexOf('product-1-placeholder-href.png'));
console.log(newStr.indexOf('SOMETHINGIMPORTANT'));

第一个console.log仍然给我一个索引,第二个为“ -1”,所以没有匹配项。

这是我要替换的HTML部分:

<div id="Group_9">
    <svg class="Rectangle">
        <rect id="Rectangle" rx="0" ry="0" x="0" y="0" width="44" height="44">
        </rect>
    </svg>
    <svg class="ID43059702_02_B">
        <pattern elementId="ID43059702_02_B_A2_Rectangle_31" id="product-1-placeholder" x="0" y="0" width="100%" height="100%">
           <image id="product-image-1" x="0" y="0" width="100%" height="100%"
                            href="product-1-placeholder-href.png"
                            xlink:href="product-1-placeholder-href.png" alt="No image found">
            </image>
        </pattern>
    </svg>
</div>

我的正则表达式是否错误,或者是否无法在此HTML字符串内替换?

2 个答案:

答案 0 :(得分:1)

您不能在正则表达式中使用引号指定字符串值。 通过删除引号,尝试以下方法。

var myStr = "<html><body>product-1-placeholder-href\.png</body></html>";
var newStr = myStr.replace(/product-1-placeholder-href\.png/g, 'SOMETHINGIMPORTANT');

console.log(newStr);

答案 1 :(得分:0)

为什么在这种情况下不使用DOM。

我认为这很容易控制和理解

document.getElementById("product-image-1").href="SOMETHINGIMPORTANT"; 
document.getElementById("product-image-1").setAttribute("xlink:href", "SOMETHINGIMPORTANT");

感谢阅读。