Показать сообщение отдельно
  #1 (permalink)  
Старый 28.07.2011, 20:58
Интересующийся
Отправить личное сообщение для martinss Посмотреть профиль Найти все сообщения от martinss
 
Регистрация: 29.12.2010
Сообщений: 24

регулярное выражение
Добрый день, столкнулся с проблемой: нужно написать регулярное выражение для проверки поля "логин" которое может содержать только символы: 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"/>
Ответить с цитированием