我想创建一个正则表达式,它将采用 1 到 10 的数值,但如果只提供 0,则不应接受
例如
1 is valid input
1111123455 is valid input
01 is valid input
010 is valid input
0000 is not valid input
0 is also not valid input
0000000000 is also not valid input
我试过正则表达式
^([0-9]{1,10}|)$
它接受十个数字但如何避免只接受 0
最佳答案
您可以使用否定的前瞻:
^(?!0+$)[0-9]{1,10}$
参见 regex demo
详细信息:
^
- 字符串的开始(?!0+$)
- 字符串末尾不允许只有零[0-9]{1,10}
- 1 到 10 位数字$
- 字符串结尾。
注意:要也允许空值,请使用 0
作为限制量词中的最小参数:
^(?!0+$)[0-9]{0,10}$
^
参见 How Negative Lookahead Works ( more here ) 以了解有关 (?!0+)
如何在此模式中工作的更多信息。简而言之:就在字符串的开头,我们检查整个字符串是否只有零。如果在字符串开头之后有零个或多个,则匹配失败。否则,匹配1(或0)到10位数字并返回结果。
关于javascript - 在正则表达式javascript中仅排除0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39721925/