首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >@ character验证出错

@ character验证出错
EN

Stack Overflow用户
提问于 2017-04-17 11:14:08
回答 3查看 36关注 0票数 0

我正在使用javascript进行密码验证:

代码语言:javascript
运行
复制
$.validator.addMethod('mypassword', function(value, element) {
    return this.optional(element) || (value.match(/^(?=.*\d)(?=.*[A-Z])[0-9a-zA-Z]{8,}$/));
},
'Password must contain at least one numeric and one uppercase alphabetic character.');

我需要密码至少是一个数字和一个大写字母字符。但是,如果我在密码中输入一个数字和一个大写字母字符的字符,例如@, # ,$,它仍然显示错误消息。

代码语言:javascript
运行
复制
Password9 accepted
Password@1 not accepted 
EN

回答 3

Stack Overflow用户

发布于 2017-04-17 11:18:36

正则表达式中的此部分不允许@

代码语言:javascript
运行
复制
[0-9a-zA-Z]

如果您不想要任何限制,那么将[0-9a-zA-Z]{8,}更改为.{8,}

票数 1
EN

Stack Overflow用户

发布于 2017-04-17 11:19:00

根据您的正则表达式,您的密码必须至少包含8个字母数字字符,并且不能包含其他字符。您的第二个密码与此条件不匹配。试一试

代码语言:javascript
运行
复制
/^(?=.*\d)(?=.*[A-Z]).{8,}$/

然而,我不确定这是您想要的,因为您可能想要限制允许的字符集,以避免,例如,像äöü这样的非英语字母。

您可能希望列出所有允许的字符,如下所示

代码语言:javascript
运行
复制
/^(?=.*\d)(?=.*[A-Z])[0-9a-zA-Z\%\&\/\$\@\#]{8,}$/

或尝试指定unicode范围:

Javascript + Unicode regexes

票数 1
EN

Stack Overflow用户

发布于 2017-04-17 14:39:22

代码语言:javascript
运行
复制
(function(){  
       var regex=/^(?=.*\d)(?=.*[A-Z])[!-~]{8,}$/;	   
	   var arr=["Password9","Password@1","password@1"];
	   for(var i=0;i<arr.length;i++){
		   console.info(arr[i]+"\t"+(regex.test(arr[i])?"accepted":"not accepted"));
	   }   
    })(); 

试试看

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

https://stackoverflow.com/questions/43444629

复制
相关文章

相似问题

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