Статьи / Регулярные выражения


replace

Функция поиска и замены совпадения в строке.

string.replace(/regExp/flags, replacer);


flags:
i - совпадение не зависит от регистра
g - глобальный поиск (не останавливается после первого совпадения)

'1 2 3 2'.replace(/2/, 4);   // "1 4 3 2"
'1 2 3 2'.replace(/2/g, 4); // "1 4 3 4"


replacer - может быть строкой, числом, функцией или ссылкой на функцию.
'1 2 3'.replace(/2/, "4");  // "1 4 3";
'1 2 3'.replace(/2/, 4); // "1 4 3";

var r = function (match) {
return match*4;
}
'1 2 3'.replace(/2/, r); // "1 8 3";


$` - всё что перед совпадением,
$& - совпадение,
$' - после совпадения.

'1 2 3'.replace(/2/, "[$`]") //  "1 [1 ] 3"

'1 2 3'.replace(/2/, "[$&]") // "1 [2] 3"

'1 2 3'.replace(/2/, "[$']") // "1 [ 3] 3"


Внутри [ ] квадратных скобок найденное совпадение либо то что предшествовало ему, либо следовало за ним. Соответственно найденная цифра 2 заменяется на вышеописанное.

$n - индекс совпадения. ($1, $2 ...)
(new Date()).toLocaleDateString().
replace(/^([0-9]+)\.([0-9]+)\.([0-9]+)$/, "$3-$2-$1");

// было "19.01.2010"
// стало "2010-01-19"