Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2011, 19:25
Аспирант
Отправить личное сообщение для shkarbatov Посмотреть профиль Найти все сообщения от shkarbatov
 
Регистрация: 25.07.2011
Сообщений: 45

Кроссбраузерность в регулярках
Помогите пожалуйста, есть поле, в которое разрешается вводить только русские символы, если вводятся не русские выдается сообщение "Введите имя на русском языке". Работает он в 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;
    }
   
 }
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2011, 19:32
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

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

Последний раз редактировалось Snipe, 28.07.2011 в 19:38.
Ответить с цитированием
  #3 (permalink)  
Старый 28.07.2011, 19:35
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

/^[а-яА-ЯёЁ]+$/
Ответить с цитированием
  #4 (permalink)  
Старый 28.07.2011, 19:40
Аспирант
Отправить личное сообщение для shkarbatov Посмотреть профиль Найти все сообщения от shkarbatov
 
Регистрация: 25.07.2011
Сообщений: 45

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

Сообщение от Snipe
По поводу второго /^[а-яА-Я]$/i - только буквы от начала и до конца.
- сделал как вы посоветовали, позволяет ввести только один символ, или одну цифру, если вводим больше букв (даже если они все русские) - все равно ругается.
Ответить с цитированием
  #5 (permalink)  
Старый 28.07.2011, 19:44
Аспирант
Отправить личное сообщение для shkarbatov Посмотреть профиль Найти все сообщения от shkarbatov
 
Регистрация: 25.07.2011
Сообщений: 45

Сообщение от Octane Посмотреть сообщение
/^[а-яА-ЯёЁ]+$/
То, что надо - спасибо!

Вот только как исправить проблему с тем, что оно не работает в FireFox?
Ответить с цитированием
  #6 (permalink)  
Старый 28.07.2011, 19:48
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

регулярное выражение работает в Firefox
Ответить с цитированием
  #7 (permalink)  
Старый 28.07.2011, 19:48
Аспирант
Отправить личное сообщение для shkarbatov Посмотреть профиль Найти все сообщения от shkarbatov
 
Регистрация: 25.07.2011
Сообщений: 45

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

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

Последний раз редактировалось shkarbatov, 28.07.2011 в 20:00.
Ответить с цитированием
  #8 (permalink)  
Старый 28.07.2011, 21:07
Аватар для Serg_pnz
Сам по себе
Отправить личное сообщение для Serg_pnz Посмотреть профиль Найти все сообщения от Serg_pnz
 
Регистрация: 09.06.2009
Сообщений: 963

Ошибка: pb is not defined
Источник: http://shkarbatov.com/artpack/pack.js
Строка: 248
Ответить с цитированием
  #9 (permalink)  
Старый 29.07.2011, 00:33
Аспирант
Отправить личное сообщение для shkarbatov Посмотреть профиль Найти все сообщения от shkarbatov
 
Регистрация: 25.07.2011
Сообщений: 45

Вот код, 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>

Последний раз редактировалось shkarbatov, 29.07.2011 в 00:36.
Ответить с цитированием
  #10 (permalink)  
Старый 29.07.2011, 00:44
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
кроссбраузерность в хроме, комодо драгон и сафари apostol roman Общие вопросы Javascript 2 06.03.2011 15:03
Кроссбраузерность Hagrael (X)HTML/CSS 6 06.07.2010 07:53
Кроссбраузерность JavaScript Раман Javascript под браузер 16 14.04.2010 12:44