Регулярные выражения описывают шаблон сопоставления строк, который можно использовать для проверки, содержит ли строка определенную подстроение, заменить соответствующую подстроение или взять подстроение, которое соответствует определенному условию из определенной строки и т. Д.
Поскольку регулярные выражения не используются часто, их легко забывать часто. В следующем редакторе перечислены обще используемые функции и функции здесь кратко для будущего просмотра:
Есть 2 обычно используемые функции объекта Regexp
1. Функция тестирования
Использование: regexpobject.test (String)
Return: true, если строка String содержит текстовое соответствие regexpobject, в противном случае false.
Описание: В этом методе нет ничего особенного, и нет особой обработки для модификатора G
Пример:
var url = 'http://www.baidu.com?a=1&b=2&c=3'; VAR reg = /a=1/;console.log(REG.Test(URL)); // Результат вывода верно
2. Функция EXEC
Использование: regexpobject.exec (String)
Возврат: возвращает массив, где хранятся результаты соответствующих. Если совпадение не найдено, возвратное значение равна нулю.
описывать:
Метод exec () очень мощный. Это общий метод и более сложный в использовании, чем метод Test (), и методы, которые поддерживают регулярные выражения.
Если exec () находит соответствующий текст, возвращается массив результатов. В противном случае вернуть ноль. 0 -й элемент этого массива - это текст, который соответствует регулярному выражению, 1 -й элемент - это текст, который соответствует 1 -й субэкспрессии regexpobobject, если таковой имеется, 2 -й элемент - это текст, который соответствует 2 -й субэкспрессии regexpobject и так далее. В дополнение к атрибуту элемента массива и длины, метод exec () возвращает два свойства. Свойство индекса заявляет о позиции первого символа, соответствующего тексту. Свойство ввода хранит полученную строку. Мы видим, что при вызове метода exec () не глобального объекта regexp возвращаемый массив такой же, как массив, возвращенный, вызывая метод string.match ().
Однако, когда regexpoboct является глобальным регулярным выражением, поведение exec () немного более сложное. Он начинает поиск строки строки в символе, указанном в свой свойство regexpobject. Когда exec () находит текст, соответствующий выражению после сопоставления, он устанавливает свойство LavIndex RegexPobject в следующую позицию последнего символа соответствующего текста. То есть вы можете выполнить все соответствующие тексты в строке, неоднократно вызывая метод exec (). Когда exec () больше не может найти соответствующий текст, он возвращает NULL и сбрасывает свойство LastIndex до 0.
Пример:
Регулярное выражение с модификатором G
var url = 'http://www.baidu.com?a=1&b=2&c=3'; Var reg = /(m[^?&=]+)=(^?&=])**/g;console.log 1.Exec(URL)); // ["a = 1", "a", "1", индекс: 21, ввод: "http://www.baidu.com?a=1&b=2&c=3"цин. // ["b = 2", "b", "2", индекс: 25, ввод: "http://www.baidu.com?a=1&b=2&c=3"цин. // ["c = 3", "c", "3", индекс: 29, Input: "http://www.baidu.com?a=1&b=2&c=3"цин. //nullreg.lastindex = 0; // Этот код очень важен, пожалуйста, обратите внимание на понимание console.log (reg.exec (url)); // ["a = 1", "a", "1", индекс: 21, ввод: http://www.baidu.com?a=1&b=2&c=3]
Регулярные выражения без модификатора g
var url = 'http://www.baidu.com?a=1&b=2&c=3'; Var reg = /(m[^?&=]+)=(^?&=])**/g;console.log 1.Exec(URL)); // ["a = 1", "a", "1", индекс: 21, ввод: "http://www.baidu.com?a=1&b=2&c=3"цин. // ["a = 1", "a", "1", индекс: 21, ввод: "http://www.baidu.com?a=1&b=2&c=3"цин. // ["a = 1", "a", "1", индекс: 21, ввод: "http://www.baidu.com?a=1&b=2&c=3"цин. // ["a = 1", "a", "1", Index: 21, Input: "http://www.baidu.com?a=1&b=2&c=3"^ reg.lastindex = 0; console.log (reg.exec (url)); // ["a = 1", "a", "1", Index: 21, Input: "http://www.baidu.com?a=1&b=2&c=3"^ reg.lastindex = 0; console.log (reg.exec (url)); // ["a = 1", "a", "1", индекс: 21, ввод: http://www.baidu.com?a=1&b=2&c=3]
Вы нашли что -то другое? Прочитайте описание функции внимательно, и вы поймете ^_ ^
Есть 4 функции строкового объекта, которые поддерживают регулярность, мы будем говорить только о 2 из них.
1. Совместить функцию
Использование: stringObject.match (SearchValue | regexp), здесь мы говорим только о режиме regexp
Возвращаемое значение: массив, который хранит соответствующие результаты. Содержание этого массива зависит от того, имеет ли regexp глобальный флаг g.
описывать:
Метод match () получает string stringObject, чтобы найти одно или несколько текстовых сопоставления. Поведение этого метода в значительной степени зависит от того, имеет ли regexp флаг g.
Если regexp не имеет флага g, метод match () может выполнять совпадение только один раз в StringObject. Если соответствующий текст не найдено, Match () возвращает NULL. В противном случае он возвращает массив, в котором хранится информация о соответствующем тексту, который он нашел. 0 -й элемент массива сохраняет соответствующий текст, в то время как текст хранилища остальных, соответствующий субэкспрессии регулярного выражения. В дополнение к этим регулярным элементам массива возвращенный массив также содержит два свойства объекта. Атрибут индекса заявляет о позиции начального символа, соответствующего тексту в StringObject, а атрибут ввода объявляет ссылку на StringObject.
Если REGEXP имеет флаг g, метод Match () выполняет глобальный поиск, поиск всех соответствующих подстроков в StringObject. Если соответствующая подстрока не найдено, null возвращается. Если найден один или несколько подходящих подстроков, возвращается массив. Тем не менее, содержание массива, возвращаемого глобальным матчем, сильно отличается от первого. Его элемент массива хранит все соответствующие подстроки в StringObject, и нет атрибута индекса или атрибута ввода.
Пример:
Без модификатора g
var url = 'http://www.baidu.com?a=1&b=2&c=3'; Var reg =/([^? & =]+) = ([^? & =])*/; var result = url.match (reg); console.log (result); // ["a = 1", "a", "1", индекс: 21, ввод: "http://www.baidu.com?a=1&b=2&c=3"цин. //21-console.log(result.input); //http://www.baidu.com?a=1&b=2&c=3"цин
С модификатором g
var url = 'http://www.baidu.com?a=1&b=2&c=3'; Var reg =/([^? &]+) = ([^? & =])*/g; var result = url.match (reg); console.log (result); // ["a = 1", "b = 2", "c = 3"] console.log (result.index); //undefinedconsole.log(result.input); //неопределенный
Вы нашли что -то другое? Прочитайте описание функции внимательно, и вы поймете ^_ ^
2. Заменить функцию
Использование: StringObject.Replace (regexp/substr, замена)
Возвращаемое значение: новая строка, полученная после замены первого матча или всех совпадений REGEXP с заменой.
Описание: Метод reply () строкового строкости выполняет операцию поиска и замены. Он будет искать подстройки, соответствующие REGEXP в StringObject и заменит эти подстроки на замену. Если Regexp имеет глобальный флаг G, метод reply () заменяет все соответствующие подстроки. В противном случае, это только заменяет первую подходящую подстроение.
Замена может быть строкой или функцией. Если это строка, то каждый матч будет заменен строкой. Но персонаж $ в замене имеет определенное значение. Как показано в следующей таблице, в нем говорится, что строка, полученная при сопоставлении шаблонов, будет использоваться для замены.
| характер | Заменить текст |
|---|---|
| 1 доллар, 2 доллара, ... $ 99 | Текст, который соответствует 1 -й по 99 -й подплав в Regexp. |
| $ & | Подстрока, которая соответствует Regexp. |
| $ ` | Текст слева от соответствующей подстроки. |
| $ ' | Текст справа от соответствующей подстроки. |
| $$ | Символ прямого измерения. (Это означает, что когда вы хотите заменить его на символ $, напишите два $) |
Пример:
Без модификатора g
var url = 'http://www.baidu.com?a=1&b=2&c=3'; Var reg =/([^? & =]+) = ([^? & =])*/; var url1 = url.replace (reg, a, b, c, d, e) {console.log (a, c, c, d); http://www.baidu.com?a=1&b=2&c=3return 'ok';}) console.log (url1); //http://www.baidu.com?ok&b=2&c=3С модификатором g
var url = 'http://www.baidu.com?a=1&b=2&c=3'; VAR reg =/([^? & =]+) = ([^? & =])*/g; var url1 = url.replace (reg, функция (A, B, C, D, E) {console.log (a, b, c, d, e); A = 1, A, 1, 21, http://www.baidu.com?a=1&b=2&c=3 и b = 2, b, 2, 25, http://www.baidu.com?a=1&b=2&c=3 и | 'ok';}) console.log (url1); //http://www.baidu.com?ok&ok&okКогда второй параметр является строкой
var url = 'http://www.baidu.com?a=1&b=2&c=3'; Var reg =/([^? & =]+) = ([^? & =])*/; // Без модификатора gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b=2&c=3var url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&b=2&c=3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&b=2&c=3var reg =/([^? & =]+) = ([^? & =])*/g; // с модификатором gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b&cvar url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&2&3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&c=3&
Выше приведено всесторонний анализ совпадения, замены, EXEC и других функций в строках JS и регулярных выражения, представленных редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!