У меня есть следующий код:заменить только подстроку, которая имеет класс блик Javascript
document.getElementById("rep").innerHTML = document.getElementById("rep").innerHTML.replace(rxp, "abc");
<div id="rep"> asd 123 asd <span class="light">123</span> asd 123 asd <span class="light">123</span> </div>
Здесь rxp
является регулярным выражением, которое соответствует числу. Проблема в том, что я хочу заменить только те 123
, которые не включены в span
, и не заменять 123
, который прилагается к <span class="light">
.
А что, если регулярное выражение для чисел: var rxp = new RegExp ("(([0-9] + \.? [0-9] +) | ([0-9] +))", "gm"); – EMM
Я не вижу никаких проблем, так как вы только сопоставляете цифры и необязательную точку между цифрами: 'var rxp = new RegExp (" [0-9] + (?: \\. [0-9] +)? (?! [^>] *> \ "thgil \" = ssalc \\ s + naps <) "," gm ");'. ** EDIT **: я удалил границу слова '\ b', возможно, вам также нужно удалить цифры даже в случае' xxx123'. –
Это действительно творческое решение –