За последние 24 часа нас посетили 55517 программистов и 1798 роботов. Сейчас ищут 1097 программистов ...

Кроссбраузерность в регулярках

Тема в разделе "JavaScript и AJAX", создана пользователем Shkarbatov, 28 июл 2011.

  1. Shkarbatov

    Shkarbatov Активный пользователь

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

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


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

    HTML:
    1. <tr><td><div class="type1">
    2.     <input name="email_" onkeyup="email(this)" id="email_" size="31"/>
    3.     <div id="pa"></div>    
    4. </div> </td><td>E-mail</td></tr>

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

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

    }[/js]
     
  2. Shkarbatov

    Shkarbatov Активный пользователь

    С нами с:
    23 июл 2011
    Сообщения:
    19
    Симпатии:
    0
    Всем спасибо, решил проблему (помогли решить)

    Ошибка была в JS, забыл взять элемент по id, почти все браузеры кроме FireFox на это не обращают внимания, теперь буду знать =)

    Спасибо всем откликнувшимся!

    [js]var test2 = false;
    function namep2(elementValue){
    var emailPattern = /^[а-яА-ЯёЁ]+$/;
    var pb_in2 = document.getElementById('pb2');
    if (emailPattern.test(elementValue.value))
    {
    pb_in2.innerHTML = "";
    test2 = true;
    }
    else
    {
    pb_in2.innerHTML = "Введите имя на русском языке";
    test2 = false;
    }

    }[/js]

    HTML:
    1. <tr><td><div class="type2">
    2.         <input name="name_2" onkeyup="namep2(this)" id="name_2" size="31"/>
    3.         <div id="pb2"></div>
    4. </div></td><td>Имя</td></tr>