шарите ли вы в регекспах

    Date: 09/21/07 (Code WTF)    Keywords: java

    Задача в нашем проекте: проверить пароль на наличие
     1. Хотя бы одной большой буквы.
     2. Хотя бы одной цифры.

    Ввожу ALEX1234 - не пускает. Смотрю JavaScript-проверку, вижу

    pattern: /([a-z]+.*[A-Z]+.*\d+)|([a-z]+.*\d+.*[A-Z]+)|([A-Z]+.*[a-z]+.*\d+)|([A-Z]+.*\d+.*[a-z]+)|(\d+.*[A-Z]+.*[a-z]+)|(\d+.*[a-z]+.*[A-Z]+)/

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

    Попросил объяснить на пальцах. Оказалось, что сий код проверяет 6 возможных вариантов ( 3! = 6):
     - сначала маленькие, потом большие, потом цифры
     - сначала маленькие, потом цифры, потом большие
    - ...

    На вопрос, что делать, если нужно будет добавить проверку на хотя бы один спец. символ - тогда делать 4! = 24 проверки??

    Короче, в итоге было заменено на двойную проверку
      pattern: /([A-Z]+)/
      pattern: /(\d+)/

    Source: http://community.livejournal.com/code_wtf/104387.html

« О сообществе || не совсем втф (C++) »


antivirus | apache | asp | blogging | browser | bugtracking | cms | crm | css | database | ebay | ecommerce | google | hosting | html | java | jsp | linux | microsoft | mysql | offshore | offshoring | oscommerce | php | postgresql | programming | rss | security | seo | shopping | software | spam | spyware | sql | technology | templates | tracker | virus | web | xml | yahoo | home