Вопрос по javascript, jquery, regex, validation – используя плагин проверки jquery, как я могу добавить проверку регулярного выражения в текстовое поле?

16

Я использую плагин проверки jquery из:http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Как я могу добавить проверку регулярных выражений для определенного текстового поля?

Я хочу проверить, чтобы убедиться, что ввод буквенно-цифровой.

Есть много дополнительных плагинов методов здесьbassistance.de/jquery-plugins/jquery-plugin-validation dstonek

Ваш Ответ

2   ответа
35

Определите новую функцию проверки и используйте ее в правилах для поля, которое вы хотите проверить:

$(function ()
{
    $.validator.addMethod("loginRegex", function(value, element) {
        return this.optional(element) || /^[a-z0-9\-]+$/i.test(value);
    }, "Username must contain only letters, numbers, or dashes.");

    $("#signupForm").validate({
        rules: {
            "login": {
                required: true,
                loginRegex: true,
            }
        },
        messages: {
            "login": {
                required: "You must enter a login name",
                loginRegex: "Login format not valid"
            }
        }
    });
});
Примечание: addmethod не нужно указывать в document.ready, он также может загрузить его немедленно, чтобы освободить document.ready для вещей, которые нужно туда добавить.
Что нужно изменить, чтобы отобразить конкретное сообщение об ошибке, если значение не буквенно-цифровое, и другое, если оно не находится между минимальной / максимальной длиной?
+1 работал как шарм!
@Cofey - я фактически не проверял (каламбур предназначен), что это работает, но я обновил пример, чтобы использовать пользовательские сообщения об ошибках, используя документацию наdocs.jquery.com/Plugins/Validation/validate#options
7

Не знаком с плагином проверки jQuery, но что-то вроде этого должно сработать:

var alNumRegex = /^([a-zA-Z0-9]+)$/; //only letters and numbers
if(alNumRegex.test($('#myTextbox').val())) {
    alert("value of myTextbox is an alphanumeric string");
}
@ karmin79: Спасибо за элегантное решение. Просто незначительная вещь, по которой вам не хватает одной & quot;) & quot; перед & quot; {& quot ;.

Похожие вопросы