首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery验证程序方法xregexp大小写不敏感

jquery验证程序方法xregexp大小写不敏感
EN

Stack Overflow用户
提问于 2014-02-18 19:24:09
回答 1查看 375关注 0票数 0

我正在尝试使用jquery.validator和xregexp测试字符串,但是我需要能够动态地设置一个不区分大小写的标志。问题是,我不知道如何使用param将xregexp的标志发送到addmethod。下面是我的addmethod当前的样子:

代码语言:javascript
复制
$.validator.addMethod(
    "regex",
    function(value, element, regexp) {
        var re = new XRegExp(regexp);
        return this.optional(element) || re.test(value);
    },
    "Please check your input."
);

这是我对它的呼吁:

代码语言:javascript
复制
webAddr: {
    regex: '^(http(s)?:\/\/)?(([a-z]+[a-z0-9-\\.]*)\\.)+[a-z]{2,}$\\i',
    maxlength: 256,
    minlength: 4
},

我的问题是\i。我想要包含它,但是根据文档,您必须使用以下格式将它作为单独的param包括:

代码语言:javascript
复制
XRegExp(regexp, flags);

如何使用jquery.validator传递动态信息?

PS:我之所以使用xregexp而不是其他东西,是因为我需要代码中其他地方真正的UTF-8支持,所以我试着把它用于任何事情,以帮助我更好地使用它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-19 02:43:29

regex传递一个对象,以便将正则表达式从标志中分离出来:

代码语言:javascript
复制
webAddr: {
    regex: {regex: '^(http(s)?:\/\/)?(([a-z]+[a-z0-9-\\.]*)\\.)+[a-z]{2,}$', 
            flags:'i'},
    maxlength: 256,
    minlength: 4
},

(我将标志从'\\i'更改为'i',因为我从未听说过将'\\i'作为标志。)

并修改验证代码,如下所示:

代码语言:javascript
复制
$.validator.addMethod(
    "regex",
    function(value, element, param) {
        var re = new XRegExp(param.regex, param.flags);
        return this.optional(element) || re.test(value);
    },
    "Please check your input."
);

我还没有测试过这段代码,所以要小心输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21863417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档