js,正则里的"或"问题

var code='456'
var bol1 = /^[0-9]*$/.test(code)
var bol2 = /^[a-zA-Z]*$/.test(code)
var bol3 = /^[\u4e00-\u9fa5]*$/.test(code)
if (bol1 || bol2 || bol3) {
//任意一个正确时处理的逻辑
}

上述3个正则分别用来判断仅限纯数字或纯字母,或纯中文的正则,但是用到了3个变量,有没有办法把3个正则合并在一个正则里,用"或"运算符进行精简呢?比如我试了试

var code='as哈2dsd'
var bol1 = /^([0-9]*)|([a-zA-Z]*)|([\u4e00-\u9fa5]*)$/.test(code)
console.log(bol1)//打印的是true

但是上述代码打印出来是true,但我需要的应该是false
求助大神帮忙,谢谢

阅读 2.1k
1 个回答

/(^\d+$|^[a-zA-Z]+$|^[\u4e00-\u9fa5]+$)/

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题