Почему требуется '/g' при замене строки в JavaScript?
например. var myString = myString.replace(/%0D%0A/g,"<br />");
Почему требуется '/g' при замене строки в JavaScript?
например. var myString = myString.replace(/%0D%0A/g,"<br />");
Это не требуется, но по умолчанию string.replace
в JavaScript будет заменено только первое совпадающее значение, которое оно находит. Добавление /g
означает, что все соответствующие значения будут заменены.
" g", о котором вы говорите в конце вашего регулярного выражения, называется "модификатором". " g" представляет "глобальный модификатор ". Это означает, что ваша замена заменит все копии согласованной строки на заменяемую строку.
Список полезных модификаторов:
Вы можете объединить модификаторы, такие как g и я вместе, чтобы получить глобальный регистр без учета регистра.
Примеры:
//Replace the first lowercase t we find with X
'This is sparta!'.replace(/t/,'X');
//result: 'This is sparXa!'
//Replace the first letter t (upper or lower) with X
'This is sparta!'.replace(/t/i, 'X');
//result: 'Xhis is sparta!'
//Replace all the Ts in the text (upper or lower) with X
'This is sparta!'.replace(/t/gi, 'X' );
//result: 'Xhis is sparXa!'
Для получения дополнительной информации см. JavaScript RegExp Object Reference в w3schools.
Флаг 'g' означает "глобальный", поэтому каждое возникновение% 0D% 0A будет заменено. В противном случае это заменит только FIRST.
Модификатор регулярных выражений g
(называемый глобальным модификатором ) в основном говорит движку, чтобы он не прекратил синтаксический анализ строки после первого совпадения. Если вы хотите опустить модификатор, замените только первый экземпляр %0D%0A
(в некоторых случаях это может быть желательно).
"g" - это флаг, который говорит, что замены должны быть сделаны "глобально". По умолчанию используется только первое совпадение.
Использование флага "g" для этой цели и синтаксис размещения его сразу после/-пределенного регулярного выражения происходит из ed (а также появляется в ex, sed, vi и т.д.).