2012-06-24 4 views
1

В основном, что я пытаюсь сделать, это подтвердить форму. В одном из полей я хочу, чтобы пробелы:Пространства в Jquery Validation Regex

Я использую:

$.validator.addMethod(
    "legalname", 
    function(value, element) { 
     return this.optional(element) || /^[a-zA-Z0-9()._-\s]+$/.test(value); 
    }, 
    "Illegal character. Only points, spaces, underscores or dashes are allowed." 
); 

$("#editform").validate({ 
    rules: { 
     name: { 
      required: true, 
      legalname: true 
     }, 
    }); 

Это работает в Safari, но не в Firefox, где он дает мне «недопустимый диапазон в классе символов». Любые идеи, как я могу заставить это работать?

+1

побег, что тир. В классе символов он определяет диапазон символов. –

+0

@RayToal. Мои мысли точно. +1 – gdoron

+0

Вам не хватает '}' на 'validate()', а более старые версии IE могут перелистывать запятые запятые, например, под 'name:'. –

ответ

4

Попробуйте убежать от -: Как вы можете видеть здесь: Работа демо: http://jsfiddle.net/svp6D/2

/^[a-zA-Z0-9()._\-\s]+$/ 

символы, которые должны быть экранированы внутри класса символов ([]) являются:

- \/[]^
+0

++ 1; Йо, могу ли я взять на себя инициативу и внести незначительное дополнение в ваш пост plz? –

+0

@Tats_innit. Вы можете сделать это с вопросом. Я доверяю вам (и получаю уведомление, почему мои сообщения были изменены, поэтому я могу их просмотреть ...) – gdoron

+0

Я не знаю, как вы себя чувствуете, но я нахожу [regular-expressions.info] (http: /www.regular-expressions.info/reference.html) хороший ресурс. –