jQuery 验证插件:仅接受字母字符?

问题描述 投票:0回答:7

我想使用 jQuery 的验证插件来验证只接受字母字符的字段,但似乎没有明确的规则。我搜索过谷歌,但没有发现任何有用的东西。

有什么想法吗?

感谢您的帮助。

jquery validation jquery-validate
7个回答
89
投票

如果包含其他方法文件,则这是 1.7 的当前文件:http://ajax.microsoft.com/ajax/jquery.validate/1.7/additional-methods.js

您可以使用

lettersonly
规则:) 附加方法是您下载的 zip 的一部分,您始终可以在这里找到最新的。

这是一个例子:

$("form").validate({
  rules: {
    myField: { lettersonly: true }
  }
});

值得注意的是,每个附加方法都是独立的,您可以包含特定的方法,只需将其放在

.validate()
调用之前即可:

jQuery.validator.addMethod("lettersonly", function(value, element) {
  return this.optional(element) || /^[a-z]+$/i.test(value);
}, "Letters only please"); 

16
投票

小心点,

jQuery.validator.addMethod("lettersonly", function(value, element) 
{
return this.optional(element) || /^[a-z," "]+$/i.test(value);
}, "Letters and spaces only please"); 

[a-z, " "] 通过添加逗号和引号,您可以在输入框中添加空格、逗号和引号。

对于空格+文本,只需这样做:

jQuery.validator.addMethod("lettersonly", function(value, element) 
{
return this.optional(element) || /^[a-z ]+$/i.test(value);
}, "Letters and spaces only please");

[a-z ] 这仅允许空格和文本。

................................................ ................................

如果您在消息中已有消息,则不需要消息“仅字母和空格”:

messages:{
        firstname:{
        required: "Enter your first name",
        minlength: jQuery.format("Enter at least (2) characters"),
        maxlength:jQuery.format("First name too long more than (80) characters"),
        lettersonly:jQuery.format("letters only mate")
        },

亚当


5
投票

尼克和亚当的答案都非常有效。

如果您想像我想做的那样允许像

á
ç
这样的拉丁字符,我想添加一条注释:

jQuery.validator.addMethod('lettersonly', function(value, element) {
    return this.optional(element) || /^[a-z áãâäàéêëèíîïìóõôöòúûüùçñ]+$/i.test(value);
}, "Letters and spaces only please");

4
投票

只是对尼克的答案的一个小补充(效果很好!):

如果您想在字母之间留有空格,例如, 您可以限制只输入全名字母,但也应该允许空格 - 只需用逗号列出下面的空格即可。如果您需要允许任何其他特定字符,也以同样的方式:

jQuery.validator.addMethod("lettersonly", function(value, element) 
{
return this.optional(element) || /^[a-z," "]+$/i.test(value);
}, "Letters and spaces only please");       

3
投票

允许字母和空格

jQuery.validator.addMethod("lettersonly", function(value, element) {
return this.optional(element) || /^[a-z\s]+$/i.test(value);
}, "Only alphabetical characters");

$('#yourform').validate({
        rules: {
            name_field: {
                lettersonly: true
            }
        }
    });

0
投票
 $('.AlphabetsOnly').keypress(function (e) {
        var regex = new RegExp(/^[a-zA-Z\s]+$/);
        var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
        if (regex.test(str)) {
            return true;
        }
        else {
            e.preventDefault();
            return false;
        }
    });

0
投票

封装在函数中:

   $(function(){
   jQuery.validator.addMethod("lettersOnly", function(value, element) {
      return this.optional(element) || /^[a-zA-Z]+$/i.test(value);
   }, "Please enter letters only.");

});

© www.soinside.com 2019 - 2024. All rights reserved.