запрещение специальных символов jQuery Validate

Мне нужно проверить текстовое поле с помощью плагина jQuery Validate, для этого я использую регулярное выражение и добавляю метод в плагин:

$.validator.addMethod(
    "regex",
    function(value, element, regexp) {
        var check = false;
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    },
    "No special Characters allowed here. Use only upper and lowercase letters (A through Z; a through z), numbers and punctuation marks (. , : ; ? ' ' \" - = ~ ! @ # $ % ^ & * ( ) _ + / < > { } )"
);

Затем в параметрах I добавить регулярное выражение:

comments:{
    required: true,
    maxlength: 8000,
    regex: /[^A-Za-z\d\-\=\~\!@#\%&\*\(\)_\+\\\/<>\?\{\}\.\$‘\^\+\"\';:,\s]/
}

Это "работает" определенным образом, оно обнаруживает недопустимые символы и отображает сообщение, проблема в том, что оно работает только тогда, когда специальные символы - единственные в поле, например:

| `` ° ¬ // This shows the error message but...
test | // This won't show the message

Итак, если есть один разрешенный символ, проверка просто перестает работать. Я что-то упускаю?

PS Я почти уверен, что это как-то связано с плагином, потому что я тестировал регулярное выражение только с помощью javascript, а он работает хорошо.

10
задан Mario 17 November 2011 в 16:53
поделиться