所以没必要写这么麻烦,用两个正则判断就行了: if(/^[A-z\d-_]{6,10}$/.test(str) && /-_/.test(str)){ // do work }
明白了,必须包含某个字符的话,正则写起来就比较麻烦了,可以结合零宽断言来判断 /^(?![0-9a-zA-Z]+$)(?![-_]+$)[\w-]{6,10}$/ (?![0-9a-zA-Z]+$)//去除不包含"-"或"_"的情况 (?![-_]+$)//去除全为"-"或"_"的情况 以上就是我的理解,如果有更好的办法,欢迎提出来
/^(?![0-9a-zA-Z]+$)(?![-_]+$)[\w-]{6,10}$/ (?![0-9a-zA-Z]+$)//去除不包含"-"或"_"的情况 (?![-_]+$)//去除全为"-"或"_"的情况
/[\w-]{6-10}/
87,904
社区成员
224,614
社区内容
加载中
试试用AI创作助手写篇文章吧