/ / Редовен израз за буквено-цифров телефонен номер? [дубликат] - рубин, regex

Редовен израз за буквено-цифров телефонен номер? [дубликат] - рубин, регекс

Понастоящем използвам редовен израз за потвърждаване само на цифрови телефонни номера, които изглеждат по следния начин:

/^([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})$/