/ Новости и уроки / Примеры регулярных выражений на Javascript

Примеры регулярных выражений на Javascript

128
Примеры регулярных выражений на Javascript
Регулярное выражение это последовательность символов, которая создает шаблон поиска. Когда вы ищете данные в тексте, вы можете использовать этот шаблон поиска, чтобы описать то, что вы ищете. В JavaScript регулярное выражение - это объект, который описывает шаблон символов.

Строка полностью соответствует регулярному выражению

Проверим если str.match(pattern) не является null:


var str = 'foo'
console.log( str.match(/^fo$/) !== null );
// false

Строка содержит регулярное выражение

Проверим если str.match(pattern) не является null:


var str = 'foo'
console.log( str.match(/fo/) !== null );
// true

Извлечь паттерн из строки

Допустим, у вас есть строка, и вы хотите проверить, имеет ли она форму «foobar <a number> baz», и, если она совпадает, вы хотите узнать, что такое <a number>.


var str = "foobar12345baz";
var result = str.match(/foobar(\d+)baz/);

if ( result === null ){
    console.log('no match'); // null означает, что нет совпадения
}else{
    console.log(result[1]); // здесь хранится результат
}
// 12345

Заменить шаблон в строке, только первое совпадение

Пример: удалить все последовательности цифр из строки


// Другими словами, замените его пустой строкой
var str = "foo bar 123 baz 456 quux";
console.log(str.replace(/\d+/g,""));
// "foo bar  baz  quux"

Захват и замена на группы захвата

Когда переменные, такие как $1 помещаются в строку замены, они ссылаются на группу захвата (разделы регулярных выражений внутри ()) в аргументе регулярного выражения:


var str = "foo b123 baz";
console.log(str.replace(/(\w)\d+/,'$1'));
// "foo b baz"

Захват и замена нескольких групп захвата

Если существует несколько групп захвата, на первую из них ссылается $1, на вторую - $2 и так далее:


var str = "foo b123  c456 baz";
console.log(str.replace(/(\w)\d+\s+\w(\d+)/,'$1--$2'));
// "foo b--456 baz"

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

Вам нужно будет использовать RegExp конструктор.


var name = "john";

// вы можете передать модификаторы как второй параметр
var john_re = new RegExp(name,'i');

// вот эти совпадают
console.log("JOHN".match(john_re));
console.log("jOhn".match(john_re));

// эти нет
console.log("mary".match(john_re));

Javascript не так уж и страшен, если вы уделите на его изучение немного времени.