Регулярная практика JavaScript (будет постоянно обновляться на основе недавнего письма)
1. JavaScript Регулярное создание и использование замены объекта: /шаблоны /флаги сначала изучают простой случай и понимайте, что может сделать замену
Регулярное конструктор выражения: New Regexp («Паттерн» [, «Флаги»]);
Функция переменной замены регулярного выражения: stringObj.replace (regexp, заменить текст);
Описание параметра:
шаблон - текст регулярного выражения
Флаги - если присутствовать, это будет следующее значение:
G: Глобальный матч
я: игнорировать дело
GI: вышеуказанная комбинация
// Следующий пример используется для получения двух параметров URL и возврата настоящего Urlvar перед urlrewrite reg = new Regexp ("(http://www.qidian.com/bookreader/)(//d+),//d+).aspx", "gmi"); url = "http://www.qidian.com/bookreader/1017141,20361055.aspx"; // Метод 1, самый простой и наиболее часто используемый метод var rep = url.replace (reg, "$ 1showbook.aspx? rep2=url.replace(reg,function(m,p1,p2,p3){return p1+"ShowBook.aspx?bookId="+p3+"&chapterId="+p3});alert(rep2);//Method 3, use the callback function with non-fixed parameters var rep3=url.replace(reg,function(){var args=arguments; return args [1]+"showbook.aspx? bookid ="+args [2]+"& gualid ="+args [3];}); alert (rep3); // Метод 4 // Метод 4 очень похож на метод 3. В дополнение к возврату замененной строки, вы также можете получить параметр var kookid; var galive; function captext () {var args = аргументы; bookId = args [2]; gateid = args [3]; Вернуть args [1]+"showbook.aspx? bookid ="+args [2]+"& gualid ="+args [3];} var rep4 = url.replace (reg, captext); alert (rep4); alert (bookid); alert (galived); // Использование метода тестирования, чтобы получить группирование var3 = new Regexp ("(http://www.qidian.com/bookreader/)(//d+),(//d+).aspx", "gmi"); reg3.test ("http://www.qidian.com/bookreader/1017141,20361055. предупреждение (regexp. $ 2); предупреждение (regexp. 3);2. Наиболее часто используемый тестовый результат Exec Match Search Замените разделение 6 методов
1) Проверьте, существует ли указанная строка
VAR DATA = «123123 ″;
var recat = /123 /gi;
Alert (recat.test (data)); //истинный
// Проверьте, существует ли персонаж g продолжать идти вниз, я чувствителен к случаям
2) EXEC возвращает значение запроса
VAR DATA = "123123,213,12312,312,3, CAT, CAT, DSFSDFS,";
var recat = /cat /i;
Alert (recat.exec (data)); //Кот
3) Матч получает массив запросов
VAR DATA = "123123,213,12312,312,3, CAT, CAT, DSFSDFS,";
var recat = /cat /gi;
var arrmactches = data.match (recat)
для (var i = 0; i <arrmactches.length; i ++)
{
предупреждение (Armactches [i]); // кошка кошка
}
4) Поиск вернуть позицию поиска, аналогичная индексу
VAR DATA = "123123,213,12312,312,3, CAT, CAT, DSFSDFS,";
var recat = /cat /gi;
alert (data.search (recat)); // 23
5) Замените символ замены, используя обычную замену
VAR DATA = "123123,213,12312,312,3, CAT, CAT, DSFSDFS,";
var recat = /cat /gi;
Alert (data.replace (recat, "libinqq"));
6) Разделение с использованием регулярного массива сегментации
VAR DATA = "123123,213,12312,312,3, CAT, CAT, DSFSDFS,";
var recat = //,/;
var arrdata = data.split (recat);
для (var i = 0; i <arrdata.length; i ++)
{
предупреждение (arrdata [i]);
}
3. Сбор часто используемых выражений:
"^// D + $" // Неприемное целое число (положительное целое число + 0)
"^[0-9]*[1-9] [0-9]*$" // Положительное целое число
"^((-// D+) | (0+)) $" // Не положительное целое число (отрицательное целое число+0)
"^-[0-9]*[1-9] [0-9]*$" // негативное целое число
"^-? // D+$" // Целое число
"^// D+(///// D+)?
"^(([0-9]+//. [0-9]*[1-9] [0-9]*) | ([0-9]*[1-9] [0-9]*//.
// положительный номер плавающей запятой
"^((-// D+(///// D+)?)
"^(-(([0-9]+//. [0-9]*[1-9] [0-9]*) | ([0-9]*[1-9] [0-9]*//.
// Отрицательное число с плавающей запятой
"^(-? // d+) (///// d+)? $" // Номер плавающей запятой
"^[A-za-z]+$" // строка, состоящая из 26 английских букв
"^[Az]+$" // строка, состоящая из 26 английских букв.
"^[az]+$" // строка, состоящая из строк 26 английских букв
"^[A-za-z0-9]+$" // строка, состоящая из чисел и 26 английских букв
"^// w+$" // строка, состоящая из чисел, 26 английских букв или подчеркивания
"^[// w-]+(//. [// w-]+)*@[// w-]+(//
"^[a-za-z]+: // (// w+(-// w+)*) (//. (// w+(-// w+)*))*(//? // s*)? $" // url
"^[A-za-z0-9 _]*$".
Основы регулярных выражений
^ Соответствует вводу или началу линии, /^ a / соответствует «а», но не «А»
$ соответствует конец ввода или линии, / a $ / matches "a", но не "a"
* Сопоставьте предыдущий Metacharacter 0 или более раз, / ba* / будет соответствовать B, BA, BAA, BAA
+ Сопоставьте предыдущий Metacharacter 1 или более раз, / ba+ / будет соответствовать BA, BAA, BAAA
? Сопоставьте предыдущий Metacharacter 0 или 1 раз, / ba? /
(x) Match x Saves x в переменной с именем $ 1 ... 9 $
x | y соответствует x или y
{n} точное совпадение n раз
{n,} совпадать с более чем n раз
{n, m} match nm times
[xyz] набор символов, сопоставление любого символа (или метахарактера) в этом наборе
[^xyz] не соответствует ни одного персонажа в этой коллекции
[/b] Сопоставьте персонаж обратного пространства
/b соответствует границе слова
/B сопоставьте слово несвязанное слово
/cx здесь, x-элемент управления, // cm/matches ctrl-m
/D соответствует символу, // d/=/[0-9]//
/D совпадает с численным символом, не словным, // d/=/[^0-9]//
/n соответствует новому персонажу
/R соответствует обратному персонажу.
/s соответствует персонажу пробела, включая/n,/r,/f/t,/v и т. Д.
/S соответствует непрерывному символу, равный/[^/n/f/r/t/v]//
/T соответствует символу вкладки
/v соответствует символу перенаправления вкладки
/w соответствует персонажу, который может сформировать слово (буквенно-цифровое, которое является моим переводом, включая цифры), включая подчеркивание, такие как [/w], соответствует 5 в «$ 5,98», равно [a-za-z0-9]
/W соответствует символу, который не может сформировать слово, такое как [/w], соответствует $ в «$ 5,98», что равно [^a-za-z0-9].