Добрый день, столкнулся с проблемой: нужно написать регулярное выражение для проверки поля "логин" которое может содержать только символы: a-zA-Z0-9_ и длина его от 4 до 15 символов. Проверка должна реагировать на посимвольный ввод с клавиатуры.
По документации
http://javascript.ru/basic/regular-expression
что-то написал, но почему-то тупо косячит:
например если вводить: aaaaaaa - то true
если вводить @@aaaaaaa то тоже true
но если ввести @@@@@@ то уже false
теряюсь в догадках... может кто знает как исправить это?
Заранее спасибо..
$(document).ready(function(){
$("#name").keyup(function(){
check_uname();
});
$("#name").focus(function(){
check_uname();
});
$("#name").blur(function(){
check_uname();
});
});
function check_uname(){
var r = true;
var uname = $("#name").val();
if(validater_username(uname)){
if((uname.length >= 4)&&(uname.length <= 15)){
$("#uname_help").css({
"background-image": "url('/images/validyesno.png')",
"background-position": "0 bottom"
});
$("#uname_help").attr({title: "OK"});
}
else{
$("#uname_help").css({
"background-image": "url('/images/validyesno.png')",
"background-position": "0 top"
});
$("#uname_help").attr({title: "Ошибка: длина логина от 4 до 15 символов!"});
r = false;
}
}
else{
$("#uname_help").css({
"background-image": "url('/images/validyesno.png')",
"background-position": "0 top"
});
$("#uname_help").attr({title: "Ошибка: разрешено использовать только английские буквы, цифры и знак подчеркивания!"});
r = false;
}
return r;
}
function validater_username(username) {
var pattern = new RegExp(/[0-9a-z_]+/i);
return pattern.test(username);
}
<input type="text" name="uname" id="name"/>