Javascript:用html字符串中的正则表达式替换图像名称

我正在尝试从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字符串中替换?


Cats萌萌
浏览 335回答 2
2回答

饮歌长啸

您不能在正则表达式中使用引号来指定字符串值。通过删除引号尝试以下方式。var&nbsp;newStr&nbsp;=&nbsp;myStr.replace(/product-1-placeholder-href\.png/g,&nbsp;'SOMETHINGIMPORTANT');

吃鸡游戏

为什么在这种情况下不使用DOM。我认为这很容易控制和理解document.getElementById("product-image-1").href="SOMETHINGIMPORTANT";&nbsp;document.getElementById("product-image-1").setAttribute("xlink:href", "SOMETHINGIMPORTANT");谢谢阅读。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript