使用jQuery验证插件,我如何在文本框上添加正则表达式验证?

16

这里有许多额外的方法插件 http://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用于需要放置的内容。 - Alistair
如果值不是字母数字或长度不在最小/最大长度之间,需要更改什么才能显示特定的错误消息? - Cofey
@Cofey - 我并没有实际验证(双关语)这是否有效,但我根据http://docs.jquery.com/Plugins/Validation/validate#options的文档更新了示例,使用自定义错误消息。 - natacado

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");
}

1
@karmin79:谢谢你提供的优雅解决方案。只是小问题,你忘了在“{”之前加上一个“)”符号。 - Arman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接