[正则表达式求助]我写了一个正则表达式,想限制只能输入1-168之间的正整数,但是不知道为什么不行

我的写法,我尝试了两种方法都不行,不知道是为毛
第一种:/^1-9?|1[0-5]d|16[0-8]$/
第二种:/^1-9?|[10-15]d|16[0-8]$/
这两种reg.test(0)和reg.test(-1)都能限制住,但是168之后的都是true,限制不住,求大神给看看,谢谢了!

阅读 2.4k
2 个回答

/^([1-9]\d?|1[0-5]\d|16[0-8])$/

楼上讲了答案,我就讲几个错误的点
单独写1-9是无效的 匹配的是,1,-,9
[]的用法看下 比如[10-15] 是匹配1,0到1,5的集合 不是10到15
d是匹配字母d,数字要用\d
参考:https://regex101.com/

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