У меня есть некоторые проблемы с получением регулярного выражения для RegularExpressionValidator для работы на клиенте:
(?=.{8,})(?=.*[A-Z])(?=.*[\d])(?=.*[\W])|(?=.*[a-z])(?=.*[\d])(?=.*[\W])|(?=.*[A-Z])(?=.*[a-z])(?=.*[\W])|(?=.*[A-Z])(?=.*[a-z])(?=.*[\d])
Это выражение должно возвращать true, если предоставленная строка
- состоит как минимум из восьми символов
- имеет как минимум один символ в трех из четырех групп «строчные буквы» / «прописные буквы» / «цифры» / «специальные символы»
Использование этого выражения в C # (.NET 3.5) напрямую возвращает ожидаемые результаты для разных тестовых строк, но в браузере клиента допустимая строка (например, aaaaBBB1) не работает.
Я прочитал ветку здесь , поэтому объяснение - это использование JavaScript на стороне клиента, которое работает немного иначе, чем реализация .NET.
Теперь я попытался запустить свое регулярное выражениев JavaScript, чтобы проверить аргументы, сделанные в потоке, связанном выше, но в JavaScript мое регулярное выражение также работает так же, как в C #.
Есть ли другой способ заставить работать RegularExpressionValidator?Я не понимаю, почему JavaScript работает (я ожидал этого не после прочтения о различиях в реализации), но RegularExpressionValidator не работает.
Заранее спасибо за любые указатели в правильном направлении.
Г.