Учитывая это регулярное выражение: "^[0-9]*\s*(lbs|kg|kgs)$"
как я делаю это нечувствительным к регистру? Я пытаюсь использовать это в блоке проверки допустимости регулярного выражения .NET, таким образом, я должен указать нечувствительность к регистру в шаблоне.
Я не могу использовать RegexOptions programatically, потому что я указываю регулярное выражение в RegularExpressionValidator
Я выяснил.
С учетом регистра: ^[0-9]\s(lbs|kg|kgs)$
Case insensitive: (?i:^[0-9]\s(lbs|kg|kgs)$)
Я полагаю, что это специфично для .NET реализации регулярных выражений. Поэтому если вы используете это в RegularExpressionValidator, вам придется отключить проверку на стороне клиента, потому что парсер javascript regex не распознает токен ?i
.
Используйте RegEx Options
Regex regExInsensitive = new Regex(@"^[0-9]\s(lbs|kg|kgs)$", RegexOptions.IgnoreCase);
В других языках обычно можно указать модификатор RegEx после конца Reg Ex; модификатор "без учета регистра" - это 'i':
В Perl:
if($var =~ /^[0-9]\s(lbs|kg|kgs)$/i) { # the /i means case insensitive
# ...
}
In PHP:
if(preg_match("/^[0-9]\s(lbs|kg|kgs)$/i", $var)) {
// ...
}
Проще всего просто изменить регулярное выражение на
^[0-9]*\s*([lL][bB][sS]|[kK][gG][sS]?)$
Это ужасно читать, но все будет работать нормально.