Общее регулярное выражение

регулярное выражение

1. Синтаксис для создания объекта RegExp:

Способ 1:new RegExp(pattern, attributes);

Способ 2:/pattern/attributes

параметр иллюстрировать
pattern это строка, определяющая шаблон регулярного выражения или другое регулярное выражение.
attributes Необязательная строка, содержащая атрибуты «g», «i» и «m», используемые для указания глобального соответствия, совпадения без учета регистра и нескольких строк совпадения. До стандартизации ECMAScript атрибут m не поддерживался. Если шаблон является регулярным выражением, а не строкой, этот параметр следует опустить.

1.1 Квадратные скобки, используемые для поиска диапазона символов:

выражение описывать
[abc] Найдите любой символ в квадратных скобках.
[^abc] Найдите любой символ, не заключенный в квадратные скобки.
[0-9] Найдите любое число от 0 до 9.
[a-z] Найдите любой символ от строчной буквы a до строчной буквы z.
[A-Z] Найдите любой символ от заглавной A до заглавной Z.
[A-z] Найдите любой символ от прописной A до строчной z.
[adgk] Находит любой символ в заданном наборе.
[^adgk] Находит любой символ вне заданного набора.

1.2 Метасимволы — это символы со специальными значениями:

метасимвол описывать
. Находит одиночный символ, кроме символа новой строки и конца строки.
\w Найдите символы слова.
\W Найдите символы, не являющиеся словами.
\d Найдите числа.
\D Найдите нечисловые символы.
\s Ищите пробельные символы.
\S Найдите непробельные символы.
\b Сопоставьте границу слова.
\B Сопоставьте границы слов.
\0 Ищите символы NUL.
\n Найдите новые строки.
\f Найдите фиды форм.
\r Ищите возврат каретки.
\t Найдите вкладки.
\v Найдите вертикальные вкладки.
\xxx Найдите символ, указанный восьмеричным числом xxx.
\xdd Находит символ, заданный шестнадцатеричным числом дд.
\uxxxx Находит символ Юникода, указанный как шестнадцатеричное число xxxx.

1.3 Квантификаторы

квантификатор описывать
n+ Соответствует любой строке хотя бы из одного n.
n* Соответствует любой строке, содержащей ноль или более n.
n? Соответствует любой строке, содержащей ноль или один n.
n{X} Соответствует строке, содержащей последовательность X n s.
n{X,Y} Соответствует строке, содержащей от X до Y последовательностей n.
n{X,} Соответствует строке, содержащей не менее X последовательностей n.
n$ Соответствует любой строке, оканчивающейся на n.
^n Соответствует любой строке, начиная с n.
?=n Соответствует любой строке, за которой непосредственно следует указанная строка n.
?!n Соответствует любой строке, за которой непосредственно не следует указанная строка n.

1.4 Методы объекта RegExp

метод описывать
compile Скомпилируйте регулярное выражение.
exec Извлекает значение, указанное в строке. Вернуть найденное значение и определить его местоположение.
test Извлекает значение, указанное в строке. Вернуть истину или ложь.

1.5 Методы объектов String, поддерживающие регулярные выражения

метод описывать
search Получить значения, соответствующие регулярному выражению.
match Найдите совпадение для одного или нескольких регулярных выражений.
replace В качестве альтернативы подстрока соответствует регулярному выражению.
split Разбить строку на массив строк.

1.6 Формула обучения регулярному выражению

  • Завсегдатаи на самом деле снобы, заостряют головы, чтобы спрятать деньги (имеется в виду начальный символ ^ и конечный символ $)

  • Если вы не можете распознать специальные символы, используйте перевернутую черту, чтобы указать путь (имеется в виду специальные символы, такие как \. \*)

  • За задней чертой следует маленькая буква w, которая представлена ​​цифрой и буквой (\w, за которой следует цифра, \d, за которой следует цифра)

  • За перевернутой чертой следует маленькая буква d, которая представлена ​​только цифрами.

  • За перевернутой чертой следует маленькая буква а, а символ будильника издает звуковой сигнал.

  • Backspace, за которым следует маленькая b, разрыв слова или backspace

  • За перевернутой чертой следует маленькая буква t, а символ табуляции очень четкий.

  • За перевернутой чертой следует маленькая буква r, и известен символ возврата каретки.

  • За задней чертой следует маленькая буква s, символ пробела важен

  • Нижний регистр, а затем верхний регистр, слишком много

  • Перевернутая черта, за которой следует большая буква W, буквенно-цифровые символы отложены

  • За перевернутой чертой следует большая буква S, а пробел будет стоять в стороне.

  • За перевернутой чертой следует большая буква D, а цифры с этого момента стоят в стороне.

  • Перевернутый квадрат, за которым следует большая буква B, исключая начало и конец

  • Один символ для повторения, три символа в помощь (* + ?)

  • 0 звезд плюс 1 до бесконечности, знак вопроса только 0 и 1 (* таблица 0-n; + таблица 1-n;? таблица 0-1 повторения)

  • Фигурные скобки имеют много знаний и сильную способность повторять операции ({n} {n,} {n,m})

  • Чтобы повторить строку, заключите ее в круглые скобки ((abc){3} означает, что строка "abc" повторяется 3 раза)

  • Специальная коллекция на заказ, средние скобки вам в помощь

  • Escape-символы не работают, ставьте их в очередь по одному

  • Слишком много для ранжирования, пожалуйста, сделайте одолжение для горизонтальной полосы ([1-5])

  • Заостренный конец помещается в квадратные скобки, а антисмысловое определение является мощным ([^a] относится к любому символу, кроме «a»)

  • 1 Вертикальный эффект не маленький, и две стороны регулярно заменяются (та же клавиша, что и "\" на клавиатуре)

  • 1 Вертикаль можно использовать много раз, а сложные определения очень удобны

  • Садовые кронштейны, много применений

  • Обратная ссылка на указанную группу, и числовой набор соответствует ей (число «1» в «\b(\w+)\b\s+\1\b» относится к предыдущему «(\w+)»)

  • Поддержка настройки имени группы, знак вопроса и угловые скобки («\w+» определяется как группа в «(?\w+)», а имя группы — «Word»)

  • Садовые кронштейны имеют множество применений, и от этого зависит назначение места.

  • Вопросительный знак и строка со знаком равенства, найдите строку перед строкой ("\b\w+(?=ing\b)" найдите строку перед "ing")

  • Чтобы найти конец строки, вставьте знак «меньше» в середине («(?

  • Знак вопроса, за которым следует восклицательный знак, за которым следует строка

  • PHPer это знает! означает обратное

  • Если за ней не следует эта строка, все будет соответствовать отчету ("\wd(?!og)\w", "собака" не соответствует, "до" соответствует)

  • Знак вопроса меньше восклицательного знака, за которым следует строка

  • Не ставьте эту строку впереди, все в очереди на отчет

  • Точка звездочка жадная, добавление вопросительного знака не жадная

  • Знак плюс и вопросительный знак гарантированно будут повторяться хотя бы один раз.

  • Старое правило двух вопросительных знаков, 0 раундов и 1 раунд

  • фигурные скобки, за которыми следует ? , жадность становится не жадной

  • Есть еще много, которые не могут вместиться, ожидая добавления в будущем.

2. Общие регулярные выражения

2.1 Социальные

Почта

var isMail = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
var isMail = /^([A-Za-z0-9_\-\.\u4e00-\u9fa5])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,8})$/;

Телефонный номер

Установить номер: https://www.jihaoba.com/tools/haoduan/

Время как близкий аспект: 11 января 2018 г.

Мобильные номера: 134 135 136 137 138 139 147 148 150 151 152 157 158 159 172 178 182 183 184 187 188 198
Раздел Юником: 130 131 132 145 146 155 156 166 171 175 176 185 186
Сегмент электрического сигнала: 133 149 153 173 174 177 180 181 189 199
Виртуальный оператор: 170

var isMobile = /^(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/;  
var isMobile = /^(0|86|17951)?(13[0-9]|14[5-9]|15[012356789]|166|17[0-8]|18[0-9]|19[8-9])[0-9]{8}$/; 

Фиксированный телефон

var isTel = /^(\+\d{2}-)?0\d{2,3}-\d{7,8}$/;
var isTel = /(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}/;

QQ-номер

var isQQ = /^[1-9][0-9]{4,10}$/;

Код WeChat

Wechat обычный, от 6 до 20 цифр, начиная с буквы, буквы, цифры, знака минус, подчеркивания

var isWeixin = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;

2.2 Персонажи

строка пуста

var isEmpty = /^\s*$/;

чистый китайский

var isCn = /^[\u4e00-\u9fa5]+$/;

английский алфавит

var isEn = /^[a-z]+$/i;

заглавные буквы

var isEn = /^[A-Z]+$/;

Буквы и цифры

var isEnAndNum = /^[a-z0-9]+$/i;

Английский, цифры, подчеркивание

var isStr = /^\w+$/;

имя пользователя

Обычное имя пользователя, от 4 до 16 символов (буквы, цифры, символы подчеркивания, знаки минус)

var isUsername = /^[a-zA-Z0-9_-]{4,16}$/;

пароль

Пароль обычный, начинается с буквы, длина от 6 до 18, может содержать только буквы, цифры и знаки подчеркивания.

var isPwd =/^[a-zA-Z]\w{5,17}$/;

Обычный надежный пароль, не менее 6 символов, включая не менее 1 прописной буквы, 1 строчной буквы, 1 цифры, 1 специального символа

var isPwd = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;

обнаружение специальных символов

Специальные символы: ["'%;)(&+]+-!!@#$~

var isSchar = /["'<>%;)(&+]+-!!@#$~/;

2.3 Числа

количество

var isNum = /(^-?[0-9]\d*$)/;
var isNum = /^\d+$/;

n чисел

var isNum = /^\d{n}$/;

более n чисел

var isNum = /^\d{n,}$/;

от m до n чисел

var isNum = /^\d{m,n}$/;

2.4 Сеть

URL-адрес

var isUrl = /^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i;

доменное имя

var isDomain = /^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+$/;

айпи адрес

var isIP = /\d+\.\d+\.\d+\.\d+/;

2.5 Географическое положение

почтовый индекс

var isMailCode = /[1-9]{1}(\d+){5}/;
var isMailCode = /^[1-9]\d{5}(?!\d)$/;

широта и долгота

долгота регулярная

var isLong = /^(\-|\+)?(((\d|[1-9]\d|1[0-7]\d|0{1,3})\.\d{0,6})|(\d|[1-9]\d|1[0-7]\d|0{1,3})|180\.0{0,6}|180)$/;

Широта каноническая

var isLat = /^(\-|\+)?([0-8]?\d{1}\.\d{0,6}|90\.0{0,6}|[0-8]?\d{1}|90)$/;

2.6 Социальные атрибуты

Имя

Zhang San/Chang·You·San/Name/Name Black Длина китайского имени ограничена 10, а длина английского имени ограничена 10

var name = /(^[\u4e00-\u9fa5]{1}[\u4e00-\u9fa5\.·。]{0,8}[\u4e00-\u9fa5]{1}$)|(^[a-zA-Z]{1}[a-zA-Z\s]{0,8}[a-zA-Z]{1}$)/;

идентификационный номер

В удостоверении личности первого поколения всего 15 цифр, а в удостоверении личности второго поколения — 18. Вы можете выбрать выражение в соответствии с вашими потребностями.

Идентификаторы первого и второго поколения

var isIdCard = /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/;

ID-карта первого поколения (15 цифр)

var isIdCard = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;

ID-карта второго поколения

var isIdCard = /^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;

заграничный пасспорт

var isIdCard = /^(P\d{7}|G\d{7,8}|TH\d{7,8}|S\d{7,8}|A\d{7,8}|L\d{7,8}|\d{9}|D\d+|1[4,5]\d{7})$/;

Единый социальный кредитный кодекс

Эталонный стандарт:
«GB_32100-2015_Правила кодирования для единых кодов социального кредита юридических лиц и других организаций».
По правилам кодирования:
Стандарт предусматривает, что единый код социального кредита представлен 18 арабскими цифрами или прописными английскими буквами (I, O, Z, S, V не применяются), которые представляют собой 1 код отдела управления регистрацией, 1 код институциональной категории и 6 регистраций. органы управления Код административной единицы, 9-значный идентификационный код субъекта и 1-значный контрольный код.
Первая часть (1-я цифра) — код отдела управления регистрацией, 9 — производственно-торгового отдела; (цифры или заглавные буквы)
Вторая часть (2-я цифра) – код категории учреждения (цифры или заглавные буквы)
Третья часть (3-8 цифр) - код административной единицы органа управления регистрацией; (номер)
Четвертая часть (цифры 9-17) - код национальной организации (цифры или заглавные буквы)
Пятая часть (18-я цифра) – контрольный код (цифры или заглавные буквы).

var isOrgCode = /^([0-9ABCDEFGHJKLMNPQRTUWXY]{2})(\d{6})([0-9ABCDEFGHJKLMNPQRTUWXY]{9})([0-9ABCDEFGHJKLMNPQRTUWXY])$/;
var isOrgCode = /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/g

Регистрационный номер бизнес-лицензии

var isBusinessRegNo = /(^(?:(?![IOZSV])[\dA-Z]){2}\d{6}(?:(?![IOZSV])[\dA-Z]){10}$)|(^\d{15}$)/;

Номер единицы недвижимости

var isCode = /^\d{12}[GJZ][ABSXCDEFGHWY]\d{4}[1-9][FLQW]\d{7}[1-9]$/;

Код организации

Код национальной организации состоит из восьмизначного (или прописного латинского алфавита) кода тела и однозначного (или прописного латинского алфавита) контрольного разряда.

var isOrgCode = /[A-Za-z0-9]{8}-[A-Za-z0-9]$/;

Номерной знак

var isCar = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;

2.7 Дата

соответствует гггг-мм-дд

var isDate = /^[1-2][0-9][0-9][0-9]-[0-1]{0,1}[0-9]-[0-3]{0,1}[0-9]$/;

2.8 Браузер navigator.userAgent

Судя по UA, это браузер IE

var userAgent = /msie (\d+\.\d+)/i;

Судя по UA, является ли это ядро ​​​​webkit

var userAgent = /webkit/i;

Определите, является ли это браузером Chrome от UA

var userAgent = /chrome\/(\d+\.\d+)/i;

Определите, является ли это браузером Firefox от UA

var userAgent = /firefox\/(\d+\.\d+)/i;

Судя по UA это браузер Opera

var userAgent = /opera(\/| )(\d+(\.\d+)?)(.+?(version\/(\d+(\.\d+)?)))?/i;

Определите, является ли это браузером Safari от UA

var userAgent = /(\d+\.\d)?(?:\.\d)?\s+safari\/?(\d+\.\d+)?/i;

Определите, является ли это системой Android от UA

var userAgent = /android/i;

Определите, является ли это iPad от UA

var userAgent = /ipad/i;

Определите, является ли это iPhone от UA

var userAgent = /iphone/i;

Судя по UA, это платформа Mac OS

var userAgent = /macintosh/i;

Определите, является ли это платформой Windows от UA

var userAgent = /windows/i;

Определить, является ли это мобильным терминалом от UA

var userAgent = /(nokia|iphone|android|ipad|motorola|^mot\-|softbank|foma|docomo|kddi|up\.browser|up\.link|htc|dopod|blazer|netfront|helio|hosin|huawei|novarra|CoolPad|webos|techfaith|palmsource|blackberry|alcatel|amoi|ktouch|nexian|samsung|^sam\-|s[cg]h|^lge|ericsson|philips|sagem|wellcom|bunjalloo|maui|symbian|smartphone|midp|wap|phone|windows ce|iemobile|^spice|^bird|^zte\-|longcos|pantech|gionee|^sie\-|portalmmm|jig\s browser|hiptop|^ucweb|^benq|haier|^lct|opera\s*mobi|opera\*mini|320x320|240x320|176x220)/i;