直接上代码 需要理解正则的 ?!,需要理解前瞻,后顾,负前瞻,负后顾四个概念. // var reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/g; var str = '123!@#_你好abs'; console.log(reg.test(str)) //false