Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Кроссбраузерность в регулярках (https://javascript.ru/forum/css-html/19204-krossbrauzernost-v-regulyarkakh.html)

shkarbatov 28.07.2011 19:25

Кроссбраузерность в регулярках
 
Помогите пожалуйста, есть поле, в которое разрешается вводить только русские символы, если вводятся не русские выдается сообщение "Введите имя на русском языке". Работает он в IE, Chrome, Safary, а вот в FireFox(5) не работает.

1) Подскажите пожалуйста в чем причина и как ее решить.
2) /^[а-яА-Я]/i - регулярка позволяющая вводить только русские символы, но она пропускает и цыфры если их вводить после русских букв, помогите пожалуйста исправить этот недочет.


Заранее благодарен!

<tr><td><div class="type1">
	<input name="email_" onkeyup="email(this)" id="email_" size="31"/>
	<div id="pa"></div>		
</div> </td><td>E-mail</td></tr>


var test = false;
function namep(elementValue){  
   var emailPattern = /^[а-яА-Я]/i; 

   if (emailPattern.test(elementValue.value))
    {
        pb.innerHTML = "";
		test = true;
    } 
   else 
    {
        pb.innerHTML = "Введите имя на русском языке";
		test = false;
    }
   
 }

Snipe 28.07.2011 19:32

По поводу первого вопроса. Где код создания pb?
По поводу второго /^[а-яА-Я]*$/i - только буквы от начала и до конца.

Octane 28.07.2011 19:35

/^[а-яА-ЯёЁ]+$/

shkarbatov 28.07.2011 19:40

Цитата:

Сообщение от Snipe
По поводу первого вопроса ничего не могу сказать, у меня все ок. Возможно пробел кто-то добавил?

А причем тут пробел, в других же браузерах все работает.

Цитата:

Сообщение от Snipe
По поводу второго /^[а-яА-Я]$/i - только буквы от начала и до конца.

- сделал как вы посоветовали, позволяет ввести только один символ, или одну цифру, если вводим больше букв (даже если они все русские) - все равно ругается.

shkarbatov 28.07.2011 19:44

Цитата:

Сообщение от Octane (Сообщение 115903)
/^[а-яА-ЯёЁ]+$/

То, что надо - спасибо!

Вот только как исправить проблему с тем, что оно не работает в FireFox?

Octane 28.07.2011 19:48

регулярное выражение работает в Firefox

shkarbatov 28.07.2011 19:48

Может у меня просто боканутая версия FireFox, посмотрите пожалуйста у себя, проблема с полем вводом имени. Показывает, что оно всегда не корректное: http://shkarbatov.com/artpack/

Заранее благодарен!

Serg_pnz 28.07.2011 21:07

Ошибка: pb is not defined
Источник: http://shkarbatov.com/artpack/pack.js
Строка: 248

shkarbatov 29.07.2011 00:33

Вот код, 248 строка помечена как 248, если данные не корректные, я вывожу: "Введите имя на русском языке"; иначе просто очищаю данную надпись: pb.innerHTML = "";

Или есть более оптимальное решение? Подскажите пожалуйста, а то я javascript знаю по-стольку по-скольку =)

var test = false;
function namep(elementValue){  
   var emailPattern = /^[а-яА-ЯёЁ]+$/; 

   if (emailPattern.test(elementValue.value))
    {
248        pb.innerHTML = "";
		test = true;
    } 
   else 
    {
        pb.innerHTML = "Введите имя на русском языке";
		test = false;
    }
   
 }



<tr><td><div class="type1"> 
		<input name="name_" onkeyup="namep(this)" id="name_" size="31"/>
		<div id="pb"></div>
	</div></td><td>&nbsp&nbspИмя</td></tr>

B@rmaley.e><e 29.07.2011 00:44

Из того, что элемент имеет id="pb", не следует. что он будет доступен по соответствующему имени переменной. Вам сюда.


Часовой пояс GMT +3, время: 16:11.