#javascript
#javascript
Вопрос:
var input = '/string/';
var output = input.replace(///g,'');
// requested output = 'string';
Что мне не нравится в этом методе, так это то, что двойные косые черты могут рассматриваться как комментарий и игнорироваться некоторыми браузерами, или я ошибаюсь?
Это работает в моем браузере, но я не могу протестировать в каждом браузере. Это совершенно правильный метод или есть лучшее решение?
Комментарии:
1. Если какой-либо браузер рассматривает
///g
как комментарий, то его анализатор JavaScript сильно поврежден.2. это будет работать в каждом браузере, который поддерживает javascript с регулярным выражением. Все, что находится между двумя косыми чертами без кавычек, будет обрабатываться как регулярное выражение.
3. Я тоже так думаю, синтаксис регулярных выражений не должен быть проблемой.
Ответ №1:
Что мне не нравится в этом методе, так это то, что двойные косые черты могут рассматриваться как комментарий и игнорироваться некоторыми браузерами
Какие двойные косые черты? Те, что в регулярном выражении? Конечно, нет, если только анализатор JavaScript браузера не полностью сломан.
Это совершенно правильный метод
ДА.
Ответ №2:
Это правильный способ выполнить замену. Двойные косые черты не будут интерпретироваться как комментарий любым производственным браузером; эта форма регулярного выражения является действительной частью EMCAScript.
Ответ №3:
Все должно быть в порядке, но если вы действительно обеспокоены, используйте RegExp
объект, например
var re = new RegExp("/", "g");
var output = input.replace(re, '');
Ответ №4:
Да, синтаксис правильный. Это будет работать с любым движком JavaScript.