Регулярные выражения


// Для регулярных выражений есть специальный объект - RegExp.

var re = new RegExp("d","g");

// Свойства
re.index
re.lastIndex
re.lastMatch
re.lastParen
re.leftContext
re.rightContext
re.$1 - re.$9

// Методы
re.compile(pattern, [flags])
re.exec(str)
re.test(str)

// Дополнительные методы у класса String
strObj.match(re)
strObj.replace(re, replaceText)
strObj.search(re)

// Есть несколько вариантов использования регулярных выражений:

// Вариант 1

var re = new RegExp("d(b+)(d)","ig");
var str = "cdbBdbsbdbdz";
var arr = re.exec(str);
s = "$1 contains: " + RegExp.$1;
s += "$2 contains: " + RegExp.$2;

// Вариант 2

var re = /w+/g;
var arr;
while ((arr = re.exec(str)) != null) { }

// Вариант 3

var ss = "The rain in Spain falls mainly in the plain.";
var re = /(S+)(s+)(S+)/g;
r = ss.replace(re, "$3$2$1");

// Вариант 4

// Преобразование градусов F с C
function f2c(s) {
    var test = /(d+(.d*)?)Fb/g;
    return(s.replace(test,
        function($0,$1,$2) {  return((($1-32) * 5/9) + "C");  }
    ));
}


Стоит отметить, что регулярные выражения в MS работают очень медленно,
и являются источником труднообнаруживаемых ошибок,
если не следить за типами данных.