首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用jquery ().match的密码字段regex

使用jquery ().match的密码字段regex
EN

Stack Overflow用户
提问于 2014-02-19 07:44:29
回答 1查看 1K关注 0票数 0

从密码字段构建regex以排除字符/、\、‘和“。

代码语言:javascript
运行
复制
$(':password').keyup(function () {

    if ($(this).val().match(/^['"\\\/]+$/)) {
        $(this).css("border", "5px solid red");
    } else {
        $(this).css("border", "5px solid green");
    };

});

如果密码字段包含任何非法字符,则输入字段周围的边框应变为红色。似乎发生的情况是,它只在字段包含完全非法字符时才会这样做。在许多非法字符中输入合法字符使字符串再次被接受。

我做错了什么?

谢谢

http://jsfiddle.net/8qLr6/8/

EN

Stack Overflow用户

回答已采纳

发布于 2014-02-19 07:48:24

问题是,您使用特殊字符(^$)表示字符串的开始和结束,作为匹配的一部分(从而匹配整个字符串);如果删除这些字符,则在任何点都匹配任何“非法”字符;这将给出正则表达式:

代码语言:javascript
运行
复制
/['"\\\/]+/

JS Fiddle演示

为了简洁,你也可以整理一下,以便:

代码语言:javascript
运行
复制
$(':password').keyup(function () {
    var $this = $(this);
    $this.css('border', function(){
        return '5px solid ' + ($this.val().match(/['"\\\/]+/) ? 'red' : 'green');
    });
});

JS Fiddle演示

顺便说一句,在可用的地方,使用input[type="password"]比使用:password要高一些;这是因为前者可以传递给浏览器的原生document.querySelectorAll(),而不是使用Sizzle解析文档(使用jQuery/Sizzle特定的选择器)。

参考文献:

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

https://stackoverflow.com/questions/21874127

复制
相关文章

相似问题

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