Регулярное выражение для мобильных номеров?

Я хочу регулярное выражение для проверки номера мобильного телефона в java-скрипте, которое может быть от 10 до 20 цифр и разделено запятой

бывший; пользователь может ввести только 10-значный номер телефона (1234567890) или ввести 10-20-значный номер телефона (1234567890123465), оба номера разделены запятой (1234567890,123456789043543,1234567890345,) но если однажды он собирается ввести номер, он должен быть от 10 до 20 цифр и может начинаться с «+91» или «0», например, заранее спасибо


person gauti    schedule 27.02.2012    source источник


Ответы (1)


Это регулярное выражение должно работать.

/^(\+91\d{8,18}|0\d{0,19})(,\+91\d{8,18}|,0\d{0,19})*$/g

\+91\d{8,18} означает, что начинается с +91, после чего может быть больше 8-18 цифр. Поскольку в начале уже 2 цифры (91), всего цифр будет 10-20.

0\d{0,19} также имеет то же значение, что и выше.

Если вы хотите сопоставить такие строки, как 123456789043543,1234567890345 и т. д., которые не начинаются ни с +91, ни с 0, тогда подойдет простой /^+\d{10-20}(,\d{10-20})*$/g.

person Shiplu Mokaddim    schedule 27.02.2012
comment
Я пробовал эту переменную num=+911678686786711,112345678;.. но она проверяет только первое число. - person gauti; 27.02.2012
comment
Вы не указали это правильно, поэтому я показал вам 2 регулярных выражения. Вы также не сказали, будет ли число разделено , или оно будет содержать его. Разместите ряд допустимых входных чисел. Тогда мы сможем понять немного больше. Также прочитайте последний абзац моего ответа. Вы указали 123456789043543,1234567890345, но не указали, являются ли они действительными или недействительными. - person Shiplu Mokaddim; 27.02.2012
comment
Я пробовал так../^(\+91\d{8,18}|0\d{9,18})((,\+91\d{8,18})|(,0\d{ 9,18}))*$/g... подходит для моего кода.. Большое спасибо, шиплу - person gauti; 28.02.2012