正则验证

求一正则验证密码:
数字、字母和特殊字符的至少任两种组合,且不能有重复、连续的字符,及不能包含标点符号。

错误示例:
111111
112233
abcabc
1,2.3(a

正确示例:
csdn135
csdn_#@
csdn_1
...全文
144 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
看错板块了 JS可以如下,其中特殊符号可以自行添加
 var array=["111111","112233","abcabc","1,2.3(a","csdn135","csdn_#@","csdn_1"];
var pattern=/^(?!\d+$)(?![a-z]+$)(?![!@#$%^&*()_+]+$)(?![\da-z!@#$%^&*()_+]*?([\da-z!@#$%^&*()_+])[\da-z!@#$%^&*()_+]*?\1)[\da-z!@#$%^&*()_+]+$/i;
for(var i in array)
alert(array[i]+":"+pattern.test(array[i]));
  • 打赏
  • 举报
回复
List<string> _list = new List<string>() { 
"111111",
"112233",
"abcabc",
"1,2.3(a",
"csdn135",
"csdn_#@",
"csdn_1"
};
_list.ForEach(x => Console.WriteLine(x+"\t"+Regex.IsMatch(x, @"(?i)^(?!\d+$)(?![a-z]+$)(?![!@#$%^&*()_+]+$)(?![\da-z!@#$%^&*()_+]*?([\da-z!@#$%^&*()_+])[\da-z!@#$%^&*()_+]*?\1)[\da-z!@#$%^&*()_+]+$")));

likeajin 2013-07-10
  • 打赏
  • 举报
回复
引用 8 楼 likeajin 的回复:
不晓得你的特殊字符包括哪些,下面的代码是以 #_@ 三个字符为特殊字符:

var ss = ['111111', '112233', 'abcabc', '1,2.3(a', 'csdn135', 'csdn_#@', 'csdn_1', '1a1', 'sdfs'], 
    reg = /^(?!\d+$|[a-z]+$|[@_#]+$)([0-9a-z#_@])(?!.+\1)[0-9a-z#_@]+$/;
for(var i = 0, il = ss.length; i < il; i++) alert(ss[i] + '\r\n' + reg.test(ss[i]))
正则表达式稍作修改,改为: reg = /^(?!\d+$|[a-z]+$|[@_#]+$)([0-9a-z#_@])(?!.*\1)[0-9a-z#_@]+$/; 否则'ss'型的不正确
likeajin 2013-07-10
  • 打赏
  • 举报
回复
不晓得你的特殊字符包括哪些,下面的代码是以 #_@ 三个字符为特殊字符:

var ss = ['111111', '112233', 'abcabc', '1,2.3(a', 'csdn135', 'csdn_#@', 'csdn_1', '1a1', 'sdfs'], 
    reg = /^(?!\d+$|[a-z]+$|[@_#]+$)([0-9a-z#_@])(?!.+\1)[0-9a-z#_@]+$/;
for(var i = 0, il = ss.length; i < il; i++) alert(ss[i] + '\r\n' + reg.test(ss[i]))
  • 打赏
  • 举报
回复
行,了解,那我再用ASCII值判断下,非常感谢
  • 打赏
  • 举报
回复
正则表达式不适合干这个,你可以在加方法判断.
  • 打赏
  • 举报
回复
不能有重复、连续的字符
  • 打赏
  • 举报
回复
上面不是符合你的要求吗 至少两种组合 数字和字母 不重复无标点符号?
  • 打赏
  • 举报
回复
感谢楼上帮助,但是还有一些会漏掉: abc123 321csdn 这些就过去了

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧