Не получается проверить строку регуляркой на jquery

Тема в разделе "JavaScript", создана пользователем danneo, 10 янв 2014.

Модераторы: ZiX
  1. danneo

    danneo Честный

    Регистр.:
    13 ноя 2007
    Сообщения:
    1.463
    Симпатии:
    114
    Код:
    var pattern_name = '/^[0-9]+$/';
    ele = $(this); //это blur с input
    Пробовал проверить по-разному:
    Код:
    console.log( ele.val().indexOf(pattern_name) );
    console.log( pattern_name.test( ele.val() ) );
    console.log( ele.val().match(pattern_name) );
    Все время выдает "-1" или null. Если забиваю не регулярку, все ок.

    А вооще, мне нужно проверить, чтобы там было только: русские буквы, цифры, тире, пробел, кавычки, один.кавычка...
    ' /^[а-я\s-ё\d\"\']{3,}$/i ';
    А как регулярку применить?
     
    Последнее редактирование: 10 янв 2014
  2. recasher2k12

    recasher2k12

    Регистр.:
    19 фев 2012
    Сообщения:
    156
    Симпатии:
    79
    Похоже, ваша проблема заключается в том, что вы регулярку объявляете как строку:
    Правильно:
    Код:
    var pattern_name = /^[0-9]+$/;
    
    вместо
    Код:
    var pattern_name = '/^[0-9]+$/';
    
    Также /i не распространяется на киррилицу и надо прописывать отдельно и верний и нижний регистр.
    Поэтому по вашему желанию:
    Код:
    var pattern_name = /^[0-9а-яА-ЯёЁ\s'"-]+$/;
    
     
    latteo и danneo нравится это.