• Какое регулярное выражение подойдет для проверки номера телефона?

    @kudry
    Тоже столкнулся с проблемой валидизации телефонных номеров.
    Телефоны берутся с участников вебинаров, на которые записываются люди из очень разных стран.
    Соответственно, со всеми предыдущими схемами возникают проблемы:
    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
    Ответ написан
    1 комментарий
  • Написание cms. Python vs Php.

    kotomyava
    @kotomyava
    Системный администратор

    Написать свою CMS не имея толком навыков программирования, одна из наиболее неразумных идей, на самом деле. =) Вы не научитесь практически ничему, но ри этом у вас получится даже не велосипед, а велосипед с квадратными колёсами, и на каком языке он будет написан, если у вас вообще хватит терпения довести его до конца, будет совершенно не важно.

    Если вам по какой-то причине не хватает WP, посмотрите на другие готовые решения, а если хочется более бурного развития, попробуйте написать хотя бы толковое расширение для того же WP. Это будет неплохим началом.

    Чтобы познакомиться с питоном, надо начать его изучать и применять, опять же. И тогда вы сможете сделать осознанный выбор. И опять же, начинайте с основ, не ставя целью, написать свою CMS.

    Ответ написан
    Комментировать