javascript заменить все с помощью выражения javascript? - PullRequest
1 голос
/ 02 декабря 2011

Я знаю, что это регулярное выражение заменяет: something.replace(/something/g,"something"); заменяет каждое вхождение в строке, но как мне заменить все что-либо на выражение jQuery / JavaScript, потому что что-то вроде этого:

newhtml=newhtml.replace(wrap($('<span class="charachter">' + prop + '</span>'))/g, wrap($('<span class="charachter">' + prop + '</span>'), obj[prop]));

не работает, когда превращается во что-то вроде этого:

newhtml=newhtml.replace(/wrap($('<span class="charachter">' + prop + '</span>'))/g, wrap($('<span class="charachter">' + prop + '</span>'), obj[prop]));

Что мне делать?

Ответы [ 2 ]

2 голосов
/ 02 декабря 2011

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

Если вы хотитезамените узел, тогда вам нужно либо изменить свойства узла, либо удалить узел и добавить новый на то же место.

Примечание. Скорее всего, вы можете использовать метод jQuery replaceWith (и, возможно, метод клонав зависимости от того, что вы хотите сделать), чтобы дать 1 узлу все свойства узла, которые вы пытаетесь заменить.

$('#node1').replaceWith($('#node2'));  //Replace node1 with node2
$('#node1').replaceWith($('#node2').clone());  // Replace node1 with a copy of node2
0 голосов
/ 02 декабря 2011

Я понимаю, что ответ другого автора, вероятно, был более тесно связан с тем, что вам нужно, но если вы хотите выполнять необычные регулярные выражения с переменными в них, вам нужно использовать конструктор RegExp.Документы о замене: https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace

Что касается вас, возможно, вы захотите сделать что-то вроде этого:

var $span = $("<span class='rarar'>bla bla bla</span>") // create the new element
var html = $span.text() // bla bla bla
var text = html.replace(new RegExp("bla", "g"), "go")
$span.text(text) // <span class='rarar'>go go go</span>
$span.appendTo(document.body) // add it to the body
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...