【问题标题】:jquery validate- add url methode with regex to allow url without httpjquery validate-使用正则表达式添加 url 方法以允许没有 http 的 url
【发布时间】:2016-10-31 15:26:55
【问题描述】:

我有一个使用 jquery validate 运行的表单。他们使用的 url 方法需要将 http 添加到 url,我希望允许用户在没有 http 和/或 www 的情况下提交 url。我使用了添加方法:

   jQuery.validator.addMethod("urlRegex", function(value, element) {
        return this.optional(element) || /^(?:([a-z]+):(?:([a-z]*):)?\/\/)?(?:([^:@]*)(?::([^:@]*))?@)?((?:[a-z0-9_-]+\.)+[a-z]{2,}|localhost|(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])\.){3}(?:(?:[01]?\d\d?|2[0-4]\d|25[0-5])))(?::(\d+))?(?:([^:\?\#]+))?(?:\?([^\#]+))?(?:\#([^\s]+))?$/.test(value);
    }, "PLEASE ENTER A VAILD WEBSITE ");

根据规则我添加了新方法:

rules: {
            name: {
                required: true,
                minlength: 2
            },

            email: {
                required: true,
                email: true
            },

            website: {
                required: true,
                urlRegex: true
            },
         }

但它仍然需要 http:\ 在 URL 的开头。我在 regex101.com 上检查了这个正则表达式,它与 example.com 等 URL 匹配,所以我不确定问题出在正则表达式还是其他问题上。

谢谢。

【问题讨论】:

    标签: jquery regex client-side-validation


    【解决方案1】:

    改用这个...

    不管有没有 HTTP://,这都可以工作

    /^([\:\/\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$
    

    【讨论】:

    • 嘿,谢谢。正如我在问题中所写的那样,我需要它在没有 www.(example.com 应该是有效的)的情况下也能工作。我的正则表达式在我测试时工作正常,所以我认为问题不存在。
    猜你喜欢
    • 2018-06-15
    • 2014-09-28
    • 2017-09-18
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多