Функция String.replace () для анализа строки XML, чтобы ее можно было отобразить в HTML - PullRequest
0 голосов
/ 09 ноября 2010

У меня есть строка XML, которая должна отображаться в HTML. Я понимаю, что первое, что нужно сделать здесь, это преобразовать все '<' и '>' в '& lt;' и '& gt;' (игнорируйте пробел после знака). Это то, что я делаю, чтобы заменить '<' - </p>

regExp = new RegExp("/</g");
xmlString = xmlString.replace(regExp, '& lt;');

xmlString не изменяется.

Также trace(regExp.test("<")); печатает false.

Что здесь не так?

Ответы [ 2 ]

3 голосов
/ 09 ноября 2010

replace возвращает новую строку, она не изменяет старую. Поэтому, если вы хотите перезаписать старое, вы должны сделать следующее:

xmlString = xmlString.replace(regExp, '&lt;');

Или, если вы не хотите перезаписывать старый, просто сохраните результат в новой переменной.

var newString = xmlString.replace(regExp, '&lt;');
2 голосов
/ 09 ноября 2010

Проблема заключается в способе создания объекта RegExp.

Поскольку вы используете конструктор RegExp, не включайте символы /:

regExp = new RegExp("<", "g");

или используйте / в качестве ярлыка:

regExp = /</g;

Смотрите эту страницу для более подробной информации: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/RegExp.html

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