使用jQuery和amp;验证自定义输入URL字段正则表达式

时间:2011-08-05 19:30:25

标签: jquery regex input jquery-validate validation

所以基本上我正在尝试验证URL(http://www.x) - 目前正在工作 - 最重要的是,验证jsFiddle(输入必须以“http://www.jsfiddle.net/”开头) )& stackoverflow URL(输入必须以“http://www.stackoverflow.com/”开头)

这是一个工作小提琴http://jsfiddle.net/eAnS9/

验证是bassistance validate plugin,即documented here

是否知道如何根据字段的起始值正确验证字段?

更新:它必须与低音电流验证一起使用/集成,可能作为低音源代码中的自定义url功能? (url正则表达式在哪里)

2 个答案:

答案 0 :(得分:2)

使用validator.addMethod()创建自定义规则。这个应该做的伎俩:

//--- Add a domain-check rule
jQuery.validator.addMethod ("domainChk", function (value, element, params) {

        if (this.optional (element) )
            return true;

        //--- Get the target domain, this will be in the rel attribute.
        var targDomain  = $(element).attr ("rel");
        var regExp      = new RegExp ("^https?:\/\/(www.)?" + targDomain + "\/", "i");

        return regExp.test (value);
    },
    function errmess (params, element) {
        return "This must be a valid URL for " + $(element).attr ("rel");
    }
);

现在将它连接到CSS类。 :

jQuery.validator.addClassRules ( { domainChk: {domainChk: true} } );


domainChk规则要求所需的域位于输入的 rel 属性中,如下所示:

<input class="field required url domainChk" rel="jsfiddle.com"      ...>
<input class="field required url domainChk" rel="stackoverflow.com" ...>


而已! See it all in action at jsFiddle.

答案 1 :(得分:0)

可能会更好,但

   var Reg = /https?:\/\/(w{3}\.)?(jsfiddle|stackoverflow)(.com\/)/

是我用过的。 http://jsfiddle.net/eAnS9/