js 验证0~99的整数

/^1-9{0,1}|0$/ 我写的这个 00 可以验证通过;

注意 01 02 03这种都是不合法的,自测的时候注意下哈~

求解答 谢谢

阅读 4.3k
7 个回答

首先00是可以验证通过的,因为0+ === 0,一个0和无数个0是完全等于的。其次这个正则有错误,/^1-9{0,1}|0$/ 这样是 1-9最多有一个或者是0,只能通过0-9,正确的验证正则是/^([1-9]\d|\d)$/

刚开始也没说 00 这种是不行的。
对 Number 类型来说前置 0 是无意义的:

console.log( 0 === 00 );  // true
console.log( 1 === 000000000000000001 );  // true

function bt (x) {
    return Number.isInteger(x) && x>=0 && x<=99 ;
}

所以 00、01 这种只能先作为字符串验证
Number 转字符串前置0是会被自动忽略的:
    var x = 00;
    console.log(x.toString());   // 0
    console.log(`${x}`);  // 0

/^([1-9]d|d)$/

^d{1,2}$ 试试这个

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