<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="">
<input type="text" name="names" class="names" >
<input type="submit">
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
function valid(a){
$('.names').blur(function(){
var vall = $(this).val(); //Снимаем значение поля
var rezult = (a).test(vall); //Сравниваем с регуляркой
alert(rezult);
});}
valid((/^[а-я\-]+$/ig) );
});
</script>
</body>
</html>
Вот полный код на котором можно протестить. Если ввести по регулярке правильное значение в поле (русские буквы и дефис) то при инициировании события blur() alert будет попеременно выдавать то true то false/
Использование полной записи RegExp не спасает ситуэйшн.