Какое регулярное выражение подойдет для проверки номера телефона?
Тоже столкнулся с проблемой валидизации телефонных номеров. 
Телефоны берутся с участников вебинаров, на которые записываются люди из очень разных стран. 
Соответственно, со всеми предыдущими схемами возникают проблемы: 
   1) а что если телефон с Украины (не +7-, а +38-)? А из Казахстана? А США (1-)? А Уганда ( +233-)? (из Уганды, правда, пока слушателей не было, но все впереди).   
   2)В разных местностях приняты самые невообразимые способы разбиения телефона на группы цифр: 
8(8888)8-88-88-88 например. или 888(88)88888-888. Да и какие угодно могут возникнуть в будущем. 
Поэтому вариант с "дефолтным разбиением типа "8(888)888-88-88 ну совершенно не катит.
Соответственно, я придумал следующий валидатор: 
   1) В начале могут быть пробелы, после них может быть "+" (а может и не быть)
   2) Дальше должна идти группа цифр в количестве от 10 до 14 (мне нужны номера в международном формате; но если кому-то нужны более короткие - можно исправить диапазон длин). 
   3) Поскольку я не знаю, как люди группируют цифры - до и после каждой цифры может быть один из 8 знаков ("-", " ", "_", "(", ")", ":", "=", "+"). Это значит, что между двумя цифрами могут быть любые два из этих знаков. 
В итоге получилось очень коротко и понятно )) :
/^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){10,14}(\s*)?$/
Съедает следующие телефоны: 
+7(903)888-88-88
8(999)99-999-99
+380(67)777-7-777
001-541-754-3010
+1-541-754-3010
19-49-89-636-48018
+233 205599853
Всем огромное спасибо!
Просмотрел все варианты и собрал на основе этого вот такую регулярное выражение ^((8|\+7)[\- ]?)?(\(?\d{3,4}\)?[\- ]?)?[\d\- ]{5,10}$ - которая по тестам выполняет условия необходимые для проверки