Замена регулярным выражением [РЕШЕНО]

m1ko

Создатель
Регистрация
15 Авг 2010
Сообщения
42
Реакции
3
Помогите решить такую штуку,
есть номера внутренние и внешние
внутр xxxx
внешн 8xxxxxxxxxx
Нужно сделать сделать подстановку 8 если человек вдруг написал номер без 8 или +7 т.е. проверить, если символов 10 не больше не меньше, добавить 8, можно проверить конечно if val == 10 и присвоить спереди 8 но это не красиво. Как сделать лучше?
 
/^[0-9]{10}$/ - 10 цифр
/^8[0-9]{9}$/ 8ка в начале и + еще 9 символов.
/^\+/ найдет +

Исходя из этого делай условия какие тебе нужно.
Для просмотра ссылки Войди или Зарегистрируйся
 
  • Нравится
Реакции: m1ko
Помогите решить такую штуку,
есть номера внутренние и внешние
внутр xxxx
внешн 8xxxxxxxxxx
Нужно сделать сделать подстановку 8 если человек вдруг написал номер без 8 или +7 т.е. проверить, если символов 10 не больше не меньше, добавить 8, можно проверить конечно if val == 10 и присвоить спереди 8 но это не красиво. Как сделать лучше?
Есть классный сайт для составления регулярок...
Для просмотра ссылки Войди или Зарегистрируйся
Поупражняйтесь там.
Есть и описания тегов регулярок итд.
 
Код:
if (!/^8\d{10}$/.test(str) && !/^\+7\d{10}$/.test(str)) {
str = '8' + str;
}
примерно так
 
  • Нравится
Реакции: m1ko
а так короче:
Код:
\d{10}
 
  • Нравится
Реакции: m1ko
а так короче:
Код:
\d{10}
мне что-то подсказывает что есть отличие между \d и [0-9] решил оставить свой вариант.

\d находит цифру из любого алфавита (у нас же юникод). Используйте [0-9], чтобы найти только обычные цифры. Например, /\d/или /[0-9]/ найдет '2' в "B2 is the suite number."
 
вам подсказывает ваше незнание
Например, /\d/или /[0-9]/ найдет '2' в "B2 is the suite number."
в вашем же примере написано, что и тот и другой вариант найдет цифру
а если придерживаться чистой теорией, то почитайте о регулярках
Для просмотра ссылки Войди или Зарегистрируйся
в частности тут:
Код:
Символ    Эквивалент    Соответствие
\d       [0-9]         Цифровой символ
 
Назад
Сверху