// RegExp принимает два параметра: регулярное выражение и флаги
// g - global, i - igrore case, m - multiline
var pattern = new RegExp("\w+", "gim");
// либо мы можем ипользовать литералы
var samePattern = /\w+/gim; // это тоже самое, что и в первом примере
// RegExp имеет смысл ипользовать, если нужно сформировать регулярное выражение на лету.
// Предпочтительней использовать литералы регулярных выражений.
var pattern = /\w+/gim,
string = "How we survive is what make us who we are";
console.log(string.match(pattern)); // Array [ "How", "we", "survive", "is", "what", "make", "us", "who", "we", "are" ]
// search - этот метод удобен, когда нужно проверить, есть ли совпадения с регулярным выражением.
// search игнорирует флаг global и возвращает индекс первого мэтча
console.log(string.search(pattern)); // 0
// если в строке ничего не найдено, то вернется -1
console.log(string.split(' ')); // Array [ "How", "we", "survive", "is", "what", "make", "us", "who", "we", "are" ]
console.log(string.split(/[\s,]+/)); // Array [ "How", "we", "survive", "is", "what", "make", "us", "who", "we", "are" ]
///////
// каждый раз когда изменяется input будем обновлять output
var input = document.getElementsByClassName('input')[0],
output = document.getElementsByClassName('output')[0];
/*
Код со страницы index.html
<input type="text" class="input"/>
<p class="output"></p>
*/
// мы хотим, чтобы при написании в input слов в двойных скобках они чем-то заменялись
// напишем словарь
voc = {
name: 'Sorax',
title: 'JavaScript Tuts',
resourse: 'YouTube'
};
// element.addEventListener( имя_события, обработчик, фаза)
input.addEventListener('keyup', function(){
output.innerHTML = this.value.replace(
/\{\{(\w*)\}\}/g, function(match, value) {
return voc[value];
}
);
}, false);
/////
var pattern = /\w+/g;
// Через эти свойства мы можем посмотреть установлены ли соответсвующие флаги
console.log(pattern.global); // true
console.log(pattern.ignoreCase); // false
console.log(pattern.multiline); // false
// lastIndex используется для хранения индекса последнего результата
console.log(pattern.lastIndex); // 0
// test используется, чтобы выяснить, есть ли совпадения регулярного выражения со строкой
// У нас есть регулярка, которая мэтчит e-mail
var pattern = /\w+@\w+\.\w/,
string = "Lorem inspum admin@site.ru";
console.log(pattern.test(string)); // true
// Метод test можно использовать при валидации форм.
// Метод exec выполняет поиск совпадений в указанной строке. Возвращает массив результатов или null
// Метод exec удобно использовать в цикле.
var pattern = /\w+/,
string = "How we survive is what make us who we are";
console.log(pattern.exec(string)); // Array [ "How" ]
// Пример
var pattern = /\w+/g,
string = "How we survive is what make us who we are",
match;
while (match = pattern.exec(string)) {
console.log(match[0] + "(Index: " + match.index + ")");
}
/*
Выводит:
Array [ "How" ] main.js:69:1
How(Index: 0) main.js:76:5
we(Index: 4) main.js:76:5
survive(Index: 7) main.js:76:5
is(Index: 15) main.js:76:5
what(Index: 18) main.js:76:5
make(Index: 23) main.js:76:5
us(Index: 28) main.js:76:5
who(Index: 31) main.js:76:5
we(Index: 35) main.js:76:5
are(Index: 38)
*/
// g - global, i - igrore case, m - multiline
var pattern = new RegExp("\w+", "gim");
// либо мы можем ипользовать литералы
var samePattern = /\w+/gim; // это тоже самое, что и в первом примере
// RegExp имеет смысл ипользовать, если нужно сформировать регулярное выражение на лету.
// Предпочтительней использовать литералы регулярных выражений.
var pattern = /\w+/gim,
string = "How we survive is what make us who we are";
console.log(string.match(pattern)); // Array [ "How", "we", "survive", "is", "what", "make", "us", "who", "we", "are" ]
// search - этот метод удобен, когда нужно проверить, есть ли совпадения с регулярным выражением.
// search игнорирует флаг global и возвращает индекс первого мэтча
console.log(string.search(pattern)); // 0
// если в строке ничего не найдено, то вернется -1
console.log(string.split(' ')); // Array [ "How", "we", "survive", "is", "what", "make", "us", "who", "we", "are" ]
console.log(string.split(/[\s,]+/)); // Array [ "How", "we", "survive", "is", "what", "make", "us", "who", "we", "are" ]
///////
// каждый раз когда изменяется input будем обновлять output
var input = document.getElementsByClassName('input')[0],
output = document.getElementsByClassName('output')[0];
/*
Код со страницы index.html
<input type="text" class="input"/>
<p class="output"></p>
*/
// мы хотим, чтобы при написании в input слов в двойных скобках они чем-то заменялись
// напишем словарь
voc = {
name: 'Sorax',
title: 'JavaScript Tuts',
resourse: 'YouTube'
};
// element.addEventListener( имя_события, обработчик, фаза)
input.addEventListener('keyup', function(){
output.innerHTML = this.value.replace(
/\{\{(\w*)\}\}/g, function(match, value) {
return voc[value];
}
);
}, false);
/////
var pattern = /\w+/g;
// Через эти свойства мы можем посмотреть установлены ли соответсвующие флаги
console.log(pattern.global); // true
console.log(pattern.ignoreCase); // false
console.log(pattern.multiline); // false
// lastIndex используется для хранения индекса последнего результата
console.log(pattern.lastIndex); // 0
// test используется, чтобы выяснить, есть ли совпадения регулярного выражения со строкой
// У нас есть регулярка, которая мэтчит e-mail
var pattern = /\w+@\w+\.\w/,
string = "Lorem inspum admin@site.ru";
console.log(pattern.test(string)); // true
// Метод test можно использовать при валидации форм.
// Метод exec выполняет поиск совпадений в указанной строке. Возвращает массив результатов или null
// Метод exec удобно использовать в цикле.
var pattern = /\w+/,
string = "How we survive is what make us who we are";
console.log(pattern.exec(string)); // Array [ "How" ]
// Пример
var pattern = /\w+/g,
string = "How we survive is what make us who we are",
match;
while (match = pattern.exec(string)) {
console.log(match[0] + "(Index: " + match.index + ")");
}
/*
Выводит:
Array [ "How" ] main.js:69:1
How(Index: 0) main.js:76:5
we(Index: 4) main.js:76:5
survive(Index: 7) main.js:76:5
is(Index: 15) main.js:76:5
what(Index: 18) main.js:76:5
make(Index: 23) main.js:76:5
us(Index: 28) main.js:76:5
who(Index: 31) main.js:76:5
we(Index: 35) main.js:76:5
are(Index: 38)
*/
Комментариев нет:
Отправить комментарий