2014-10-13 3 views
0

Ref: JS fiddleJavaScript: Замена строки, содержащих символы новой строки

У меня есть <pre> элемента, содержащих несколько строк внутри. Используя JQuery, я вызываю .html(), чтобы получить innerHTML, а затем выполнив строку replace() в возвращаемой строке HTML. Тем не менее, замена работает только в первой строке и не подходит для остальных, предположительно потому, что возвращаемый innerHTML имеет новую строку.

Не могли бы вы предложить обходное решение для замены обеих линий внутри <pre>?

ответ

1

Обратите внимание на предупреждение об использовании параметра flags в функции replace, найденную в https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace:

Примечание: флаги, аргумент является нестандартным расширением Mozilla. A строка, указывающая комбинацию флагов регулярных выражений. Использование параметра параметра flags в методе String.replace является нестандартным. Вместо использования этого параметра используйте объект RegExp с соответствующими знаками .

(выделено мной)

Таким образом, вместо того, чтобы использовать эти параметры, вы должны использовать соответствующие регулярные выражения вместо:

string = string.replace(/&lt;your-login&gt;/g, userName); 
string = string.replace(/&lt;repository-name&gt;/g, repoName); 
Смежные вопросы