Най-добри случаи на употреба на регулярни изрази

В тази статия ще видим някои от полезните регулярни изрази, които можете да използвате във вашите реални приложения

1. Проверка на имейл :

^[^@ ]+@[^@ ]+\.[^@ \.]{2,}$

Обяснение:

^[^@ ]+ =› проверява за имейл, който започва със знака, който не е @ и интервал (+ показва едно или повече появявания на предишния знак)

@[^@ ]+ =› след това един символ @ и след това без символ @ и интервал (+ показва едно или повече появявания на предишния знак)

\.[^@ \.]{2,}$ =› след това една точка и след това поне 2 знака, които не включват @, интервал и точка. Обърнете внимание, че сме добавили обратна наклонена черта преди точка (.), Само точка (.) без обратна наклонена черта означава, че ще съответства на всеки знак.

function isEmailValid(email) {
 if(/^[^@ ]+@[^@ ]+\.[^@ \.]{2,}$/.test(email)) {
  console.log('email is valid');
 } else {
  console.log('email is invalid')
 }
}
isEmailValid('[email protected]'); // email is valid
isEmailValid('abc11gmail.com'); // email is invalid

2. Проверка на паролата:

(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s)(?=.*[!@#$*])

Обяснение:

Този регулярен израз проверява за парола, която трябва да съдържа поне една главна буква, малка буква, цифра и специален символ

(?=.*\d) =› проверява за нещо, последвано от нула или повече срещания на цифра

(?=.*[a-z]) =› проверява за нещо, последвано от нула или повече срещания на малката буква

(?=.*[A-Z]) =› проверява за нещо, последвано от нула или повече срещания на главна буква

(?!.*\s) =› проверява за нещо, което не е знак за интервал

(?=.*[!@#$*]) =› проверява за нещо, последвано от нула или повече появявания на специални знаци от списъка!, @, #, $ и *

function isPasswordValid(password) {
 if(/(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s)(?=.*[!@#$*])/.test(password)) {
  console.log('password is valid');
 } else {
  console.log('password is invalid')
 }
}
isPasswordValid('Abc@123'); // password is valid
isPasswordValid('Abc123'); // password is invalid

3. Валиден формат на датата:

\d{4}-\d{2}-\d{2}

Обяснение:

Този регулярен израз проверява дали датата е въведена във формат ГГГГ–ММ–ГГ

Като 2019–12–18 във формат 4 цифри–2 цифри–2 цифри

function isDateValid(date) {
 if(/\d{4}-\d{2}-\d{2}/.test(date)) {
  console.log('date is valid');
 } else {
  console.log('date is invalid')
 }
}
isDateValid('2019-12-18'); // date is valid
isDateValid('2019-2-18'); // date is invalid

4. Валидиране на празен низ:

^\s*$

Обяснение:

Този регулярен израз проверява дали низът съдържа само интервали

function isEmpty(value) {
 if(/^\s*$/.test(value)) {
  console.log('string is empty or contains only spaces');
 } else {
  console.log('string is not empty and does not contain spaces')
 }
}
isEmpty('abc'); // string is not empty and does not contain spaces
isEmpty(''); // string is empty or contains only spaces

5. Проверка на телефонен номер:

^[\\(]\d{3}[\\)]\s\d{3}-\d{4}$

Обяснение:

Този регулярен израз проверява за телефонен номер във формат (123) 456–8911, т.е. (3 цифри) (интервал) (3 цифри) (тире) (4 цифри)

function isValidPhone(phone) {
 if(/^[\\(]\d{3}[\\)]\s\d{3}-\d{4}$/.test(phone)) {
  console.log('phone number is valid');
 } else {
  console.log('phone number is invalid')
 }
}
isValidPhone('(123) 456-8911'); // phone number is valid
isValidPhone('(123)456-8911'); // phone number is invalid

6. Проверка на номер на кредитна карта:

Кредитна карта Visa: ^4[0–9]{12}(?:[0–9]{3})?$

Кредитна карта American Express: ^3[47][0–9]{13}$

Mastercard: ^(?:5[1–5][0–9]{2}|222[1–9]|22[3–9][0–9]|2[3–6][0–9]{2}|27[01][0–9]|2720)[0–9]{12}$

Открийте карта: ^6(?:011|5[0–9]{2})[0–9]{12}$

function isValidVisaCard(cardNumber) {
 if(/^4[0-9]{12}(?:[0-9]{3})?$/.test(cardNumber)) {
  console.log('valid visa credit card number');
 } else {
  console.log('invalid visa credit card number')
 }
}
isValidVisaCard('4111111111111'); // valid visa credit card number
isValidVisaCard('2111111111111'); // invalid visa credit card number
isValidVisaCard('411111111111'); // invalid visa credit card number

Ако имате затруднения с разбирането на някой от горните регулярни изрази, вижте предишната ми статия ТУК относно това как лесно да разберете всеки регулярен израз в света.

Това е всичко за днес. Надявам се, че научихте нещо ново днес.

Не забравяйте да се абонирате, за да получавате седмичния ми бюлетин с невероятни съвети, трикове и статии директно във входящата ви поща тук.