早教吧 育儿知识 作业答案 考试题库 百科 知识分享

正则表达式顺序问题话说有一题,针对密码框,数字和字母,两者须同在,正则表达式:/\d[A-Za-z]+|[A-Za-z]\d+/和/(?=.*\\d)(?=.*[A-Za-z])/两效果一样,=.数字和字母没有前后顺序限制.求更简单的表达式.

题目详情
正则表达式顺序问题
话说有一题,针对密码框,数字和字母,两者须同在,正则表达式:/\d[A-Za-z]+|[A-Za-z]\d+/和/(?=.*\\d)(?=.*[A-Za-z])/两效果一样,=.数字和字母没有前后顺序限制.求更简单的表达式.
▼优质解答
答案和解析
总的来说,你提供的这两个正则表达式都很有问题.
首先,你需要的正则表达式可以改成比较简单的写法:[\w\d]*(\w\d|\d\w)[\w\d]*
其次,(?=.*\\d)(?=.*[A-Za-z])这个式子的写法本身就很有问题,它匹配的是某正则表达式或是某字符后含有数字或字母而匹配时不包含,但是这某字符却没有加限定,这个前面应该还有正则表达式才对,而且,即便加了限定,理论上也匹配不到所有的组合,因为这种方法匹配时不包含?=后的内容.
综上所述,你还是试试这个吧……[\w\d]*(\w\d|\d\w)[\w\d]*
这个考虑到最极限的条件,只有前两个或最后两个字符是一字母一数字的情况也包含在内.
看了 正则表达式顺序问题话说有一题...的网友还看了以下: