试图为" alpha"编写自定义验证器。与formvalidator.net?

时间:2014-05-23 23:16:24

标签: javascript jquery regex validation

我使用formvalidator.net jQuery插件并尝试编写一个不接受数字输入的自定义验证器("字母数字"类型允许数字)。我在下面编写了这个函数,但我不确定$el, config, language, $form个参数应该传递什么,而且我不理解文档,这里是http://formvalidator.net/#custom-validators

文档解释了这些论点,但我不知道如何正确地格式化它们;我是jQuery的新手,也是Javascript的新手。任何帮助将不胜感激。

这是我的代码,感谢您的帮助!

$.formUtils.addValidator({
  name : 'non-numeric',
  validatorFunction : function(value, $el, config, language, $form) {

    var numericRe = /[0-9]/;
    return !numericRe.test(value);

  },
  errorMessage : 'Please enter a valid name (no numbers)',
  errorMessageKey: 'badContainsNumber'
});                 

$.validate();

1 个答案:

答案 0 :(得分:2)

您需要做的只是在表单中引用name属性:

<input type="text" data-validation="non-numeric" />

value$elconfiglanguage$form参数会自动传递给validatorFunction回调函数。它们是为了您的方便(value是值,$el是输入,不确定configlanguage而不阅读文档,$form是形式)。

目前,只要没有数字,您的自定义验证器就会允许任何内容(因此!@#验证,而不是“alpha”)。如果您需要pure "alpha",请使用以下函数:

function(value, $el, config, language, $form) {
    return /^[a-z]+$/i.test(value);
}

^$会将您的匹配锚定到字符串的开头/结尾,i会使其不区分大小写。请注意,这将查找1+个字母,如果您希望字符串在空时有效,则需要0+个字符:[a-z]*