JScript - это версия ECMAScript от Microsoft, которая поддерживает крайне ограниченный набор функций регулярных выражений по сравнению с .NET.Ваша самая большая проблема заключается в том, что он не поддерживает встроенные модификаторы, такие как (?i:xyz)
.Также, кажется, нет способа передать модификаторы отдельно, как вы могли бы, если бы вы использовали C # или JScript напрямую.Если вы хотите исключить регистр символов без учета регистра, вы как бы облажались.
Также следует помнить, что сокращения на символьном уровне, такие как \d
и \W
, имеют разные значения на сервере (.NET), чем на клиенте (JScript).Если вы хотите, чтобы регулярные выражения работали одинаково с обеих сторон, возможно, вы захотите быть более конкретными.Вот пример, разбитый для ясности:
^
(?=\S{8,}$) # eight or more non-whitespace characters
(?=.*[0-9]) # at least one digit
(?=.*[a-z]) # at least one lowercase letter
(?=.*[A-Z]) # at least one uppercase letter
(?=.*[^A-Za-z0-9]) # at least one non-letter, non-digit
(?!.*(?:pass|word|god|PASS|WORD|GOD))
.+$
Как видите, я исключаю только строчные или прописные версии pass
, word
и т. Д., Что нене совсем удовлетворительно.Если вам действительно нужно исключить или требовать ввода целых слов без учета регистра, вам, возможно, придется использовать другой вид валидатора.