Я расширяю библиотеку проверки формы CodeIgniter для проверки значений Alpha Numeric с символами подчеркивания, исключая тире . Но я очень новичок в шаблонах регулярных выражений и хотел бы помочь …
В настоящее время для alpha_numeric CI есть:
return ( ! preg_match("/^([a-z0-9])+$/i", $str)) ? FALSE : TRUE;
И для alpha_dash CI имеет:
return ( ! preg_match("/^([-a-z0-9_-])+$/i", $str)) ? FALSE : TRUE;
И я создаю «alpha_underscore» (который снова будет буквенно-цифровым с подчеркиванием):
Это верно?
return ( ! preg_match("/^([a-z0-9_])+$/i", $str)) ? FALSE : TRUE;
Я смущен, почему в начале и конце шаблона «alpha_dash» есть «-»
Класс символов [-a-z0-9_-]
совпадает с [a-z0-9_-]
или [-a-z0-9_]
.
Один из них -
можно отбросить.
Персонаж был просто дублирован. Вы можете удалить один экземпляр, и регулярное выражение должно работать нормально.