PDA

Просмотр полной версии : regExp не поддается


nadyas
23.11.2005, 18:14
нужно проверить текстовое поле на соответствие синтаксису Логина

rightlogin = new RegExp("[a-z0-9_]");
if ( ! rightlogin.test(formObj.login.text) )
{
сообщение "неправильные логин"
return false;
}

при этом находится хотя бы одно правильное вхождение, и передается true - не то что нужно, т.е. если ввести строку aa11+ - прокатывает, хотя не должна

подскажите, что не так

Skubent
23.11.2005, 20:04
Задай начало-конец регулярки. Задай количество повторов. У тебя true будет для варианта ******a******
Не знаю, как оно поддерживается у макромедии (читай хелп), а в perl-совместимых регулярках это выглядит так:
"/^(\w){1,}$/i"
Идея - Сначала идет начало строки(^), потом один или более({1,}) символ( (\w) ) (буквы, цифры и "_" оптом), потом конец строки ($)
Обрамление - признак начала/конца выражения и модификатор (i), указывающий на регистронезависимый поиск.