1: Как создать регулярные выражения
1. Формат текста, метод использования следующим образом:
/pattern/flags (т.е./mode/mark)
2. Конструктор REGEXP, метод использования выглядит следующим образом:
New Regexp («Паттерн» [, «Флаги»]) (т.е. новая regexp («шаблон» [, «mark»])))))
Параметр:
Паттерн: текст, который представляет регулярное выражение
Флаги (тег): если вы указали этот элемент, флаги могут быть одним из следующих.
G: Global Match (полный матч)
I: Игнорировать дело (игнорировать дело)
GI: как глобальный, так и игнорировать корпус (сопоставьте все возможные значения и игнорируйте случай)
ПРИМЕЧАНИЕ. Не используйте кавычки, чтобы отметить параметры в текстовом формате, и не используйте кавычки, чтобы отметить параметры функции генератора Ergou. Итак, следующее выражение
Это эквивалентно:
/ab+c/i ====================================================================================================
описывать:
При создании регулярных выражений с использованием функций конструктора необходимо использовать обычные строки, чтобы избежать правил (включайте ведущие символы/ в строку).
Например, следующие два утверждения эквивалентны:
re = new Regexp ("// w+");
re = // w+/
ПРИМЕЧАНИЕ: Regexp имеет Preset $ Attribute
1 доллар, ..., 9 долларов
Совместите подстроки, заключенные в скобки, если таковые имеются.
Это свойство regexp
Статический, только читать
Предоставлено в JavaScript 1.2, NES 3.0 или выше
Описание: Потому что ввод является статическим свойством, а не атрибутом отдельных объектов регулярного выражения. Вы можете получить доступ к этому с помощью regexp.input
свойство.
Количество подстроков, которые можно добавить в скобки, не ограничено, но объекты регулярного выражения могут сохранить только последние 9. Если вы хотите получить доступ ко всем
Соответствующая строка в скобках, вы можете использовать возвращенный массив.
<! Doctype html public "-// w3c // dtd html 4.0 transitional // en"> <html> <head> <title> Новый документ </title> <script language = "javascript1.2"> var regexp = new Regexp ("(// w+) // s (// w+)"); str = "Джон Смит"; newsstr = str.replace (regexp, "$ 2"); newsstr2 = str.replace (regexp, "$ 1"); document.write ("Original String:"+str+"<br/>"); document.write (Newstr+"<br/>"); Document.Write (NewStr2+"<br/>"); document.write ('$ 1 ='+regexp. $ 1+"$ 2 ="+regexp. $ 2); </Script> </head> <body> </body> </html>2: Метод match () может получить указанное значение в строке или найти совпадение для одного или нескольких регулярных выражений. Он возвращает указанное значение, а не положение строки.
грамматика
stringObject.match (searchValue)
stringObject.match (regexp) Описание параметра
SearchValue требуется. Определяет получение строки, которое будет получено.
regexp требуется. Объект Regexp, который определяет шаблон для соответствия. Если параметр не является объектом REGEXP, вам нужно сначала передать его в конструктор REGEXP и преобразовать его в объект RegeXP.
Возвращаемое значение
Хранит соответствующий массив результатов. Содержание этого массива зависит от того, имеет ли regexp глобальный флаг g.
иллюстрировать
Метод match () получает string stringObject, чтобы найти одно или несколько текстовых сопоставления. Поведение этого метода в значительной степени зависит от того, имеет ли regexp флаг g.
Если regexp не имеет флага g, метод match () может выполнять совпадение только один раз в StringObject. Если соответствующий текст не найдено, Match () возвращает NULL. В противном случае он возвращает массив, в котором хранится информация о соответствующем тексту, который он нашел.
Пример использования соответствия:
<! Doctype html public "-// w3c // dtd html 4.0 transitional // en"> <html> <head> <title> Новый документ </title> <script language = "javascript1.2"> var str = "1 плюс 2 равных 3"; var str2 = "23.11.55"; var results = str.match (new regexp ("// d+", "gi")); for (var i = 0; i <results.length; i ++) {document.write (результаты [i]+"<br/>"); } var res = str2.match (new regexp ("(// d // d?)/(// d // d?)/(// d // d)")); if (str2.length == res [0] .length) {document.write (res [1]+"<br/>"); document.write (res [2]+"<br/>"); document.write (res [3]+"<br/>"); } </Script> </head> <body> </body> </html> function datecheck (value) {re = new Regexp ("(// d // d?)/(// d // d?)/(// d // d)"); var result = value.match (re); if (result) {if (result [0] .length! = value.length) {alert ("формат неправильной даты. Правильный формат должен быть mm/dd/yy.") вернуть false; } else {var t = result [3]; var y = parseint ("20" + t); var m = parseint (результат [1], 10) - 1; var day = parseint (результат [2], 10); var d = новая дата (y, m, day); if (d.getfyear ()! = y || d.getmonth ()! = m || d.getDate ()! = day) {alert ("Дата ошибки!") вернуть false; } else {var sm = result [1] .length == 1? '0' + result [1]: result [1]; var sday = result [2] .length == 1? '0' + результат [2]: результат [2]; var sy = результат [3]; иначе вернуть sm + '/' + sday + '/' + sy; }}} else {alert ("неправильный формат даты. Правильный формат должен быть мм/dd/yy."); вернуть ложь; }}