Понастоящем използвам редовен израз за потвърждаване само на цифрови телефонни номера, които изглеждат по следния начин:
/^([d -)(+.]{10,16})$/
Имам изискване, когато трябва да надстроя редовния израз, за да поддържа долните валидни случаи на телефонни номера:
(866) 999-EMAS
1-800-MY-APPLE
Благодаря
Отговори:
2 за отговор № 1Няма такова нещо като изречение за потвърждаване на телефонен номер… Наистина, забрави. :-)
Има десетки формати по света ипонякога в самите страни. Това означава, че нямате никаква гаранция за броя на цифрите - което, между другото, може да бъде само две, а може би дори една цифра.
Добавяйки обида към нараняване, всяко място изглеждасвой собствен начин за представяне на телефонни номера: с местен код и регионални кодове или без, с множество скоби, скоби, тирета, точки, интервали, букви, дори думи; име. В някои страни местните жители не могат дори да се споразумеят как да бъдат форматирани помежду си за един и същ номер.
В крайна сметка можете да коригирате редовността си, като добавите неща в скобите си, напр. [d -)(+.a-zA-Z]
, Но в крайна сметка той все още ще бъде също толкова грешен, колкото и изискването за непразен пощенски код, поради съображения за дължина или някакъв крайен случай, включващ странни символи, които все още не сте идентифицирали.
Единственият начин да бъдете сигурен е да наберете номера и всъщност да поставите обаждането.
0 за отговор № 2
След като променям съществуващия си редовен израз, това ми се струва, че работи.
/^([d -)(+.[a-zA-Z0-9]]{10,16})$/