Проверьте номер шаблона с Javascript регулярное выражение - PullRequest
1 голос
/ 28 апреля 2020

на простом веб-сайте, который я создаю, я запрашиваю телефонный номер пользователя, который должен быть введен либо

080-0000-0000 МОЖЕТ БЫТЬ 090-0000-0000 ИЛИ ДАЖЕ 070-0000-0000

ИЛИ

080-0000-00000 МОЖЕТ БЫТЬ 090-0000-00000 ИЛИ ДАЖЕ 070-0000-00000

Как использовать Javascript Проверка регулярных выражений для проверки шаблона, Я могу сделать это PHP, но Javascript вызывает проблемы, это то, что я пытался.

var x_checkout_phone_number = "080-0000-0000" OR COULD BE "080-0000-00000" OR THE USER COULD SEND SOMETHING WRONG EG "080-00000000" 
var phoneRegex = new RegExp(/\d{3}-\d{4}-\d{4}/);
var phoneRegex_1 = new RegExp(/\d{3}-\d{4}-\d{5}/);
var phone_valid = phoneRegex.test(x_checkout_phone_number);
var phone_valid_d = phoneRegex_1.test(x_checkout_phone_number);
if (!phone_valid || !phone_valid_d) {
alert ("Invalid phone number format")
return false;   
} else {
alert ("Valid phone number format")
}

Как проверить входящие данные. Спасибо.

Ответы [ 3 ]

2 голосов
/ 28 апреля 2020

Возьмите это регулярное выражение: @0[789]0-\d{4}-(\d{4}|\d{5})$

Вы можете достичь этого также в PHP:

<?php
$checked_variable = "090-0000-12345";
if (preg_match("@0[789]0-\d{4}-(\d{4}|\d{5})$", $checked_variable)) {
echo "Invalid phone number format";
}
else
{
echo "Valid phone number format";
}
?>

или в JS:

var str = "090-0000-12345"; 
var res = str.match(/0[789]0-\d{4}-(\d{4}|\d{5})/g);
2 голосов
/ 28 апреля 2020

Просто объедините ваши регулярные выражения в одно:

/0[7-9]0-(\d{3}-\d{3}|\d{4}-\d{5})/

извините, я не делаю это осторожно. должно быть

/0[7-9]0-\d{4}-(\d{4}|\d{5})/

для переменного контекста регулярного выражения

var rgxStr = "0[1-9]\\d-\\d{4}-(\\d{4}|\\d{5})";
var rgxPhone = RegExp(rgxStr + some_thing_else);

для фиксированного контекста регулярного выражения

var rgxPhone = /0[1-9]\d-\d{4}-(\d{4}|\d{5})/;

или

var rgxPhone = RegExp("0[1-9]\\d-\\d{4}-(\\d{4}|\\d{5})");
1 голос
/ 29 апреля 2020

Я сделал это с

var x_checkout_phone_number = "081-2222-2222";
var phoneRegex = new RegExp(/^0[1-2-3-4-5-6-7-8-9][0-9]-\d{4}-(\d{4}|\d{5})$/);
var phone_valid = phoneRegex.test(x_checkout_phone_number);
if (!phone_valid) {
alert ("Invalid phone");
} else {
alert ("Validphone");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...