Javascript: заменить имя изображения регулярным выражением в HTML-строке - PullRequest
1 голос
/ 16 мая 2019

Я пытаюсь заменить имя изображения (product-1-placeholder-href.png) из строки HTML.Я пытался правильно использовать все правила регулярных выражений.Тем не менее, он по-прежнему не соответствует и не заменяет строку, и я действительно не знаю, почему.

Так что это мое регулярное выражение:

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 по-прежнему дает мнеindex, второй - «-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 ]

1 голос
/ 16 мая 2019

Нельзя использовать кавычки в регулярных выражениях для указания строкового значения.Попробуйте следующим образом, удалив кавычки.

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);
0 голосов
/ 16 мая 2019

Почему вы не используете DOM для этого случая.

Я думаю, что это легко контролировать и понимать

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

Спасибо за чтение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...