Javascript - заменить все строки на странице, которые начинаются с - PullRequest
0 голосов
/ 19 декабря 2018

Я бью стену.Я пытаюсь заменить все строки на странице, которые начинаются с "Person 1", на "Person 1 (ValueFromPreviousField)".

Я не могу применить заменить целую строку, которая начинается с логики 'Person 1' , поэтому каждый раз, когда я нажимаю кнопку обновления, предыдущий "(ValueFromPreviousField)" остается в конце строки (что, очевидно, мне не нужно).

function test() {
  var N1 = document.getElementById("Name1").value;
        var N2 = document.getElementById("Name2").value;
  document.body.innerHTML = document.body.innerHTML.replace(/Person 1 */g, "Person 1 (" + N1 +")").replace(/Person 2/g, "Person 2 (" + N2 +")");

}

Вот скрипка с примером html: http://jsfiddle.net/ndt50xgo/20/

PS: Поскольку это html, сгенерированный с помощью шорткода, я не могу назначить классы или идентификаторы всем этим интервалам.

1 Ответ

0 голосов
/ 19 декабря 2018

Учтите это: если вы начнете с x y и вы замените x на x a, вы получите x a y.Теперь, если вы замените x на x b после этого, вы получите x b a y, поскольку ничто не заставляет ваш текст сначала вернуться к x y.То же самое относится и к вашему примеру.Ваше регулярное выражение также должно соответствовать любому добавленному вами тексту, чтобы обеспечить его замену.

Таким образом, вместо /Person 1 */g он может иметь /Person 1( \(.*?\))?/g, а для /Person 2 */g, конечно, /Person 2( \(.*?\))?/g.

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