如何表示正则表达式编号范围(例如1到12)?

Pac*_*ier 10 regex standards coding-style

我目前正([1-9]|1[0-2])用于表示1到12之间的输入.(不允许前导零.)

然而它似乎相当hacky,并在某些日子看起来完全肮脏.

☞是否有适当的内置方式来做到这一点?

☞表示数字范围有哪些其他方法?

xan*_*xan 9

我倾向于选择[2-9]|1[0-2]?避免回溯的形式,尽管这里没有什么区别.虽然正则表达式可以很好地处理它们,但我已经受到XML Schema的限制以避免这种"含糊不清".

  • 这个表达式也接受像 123 这样的数字,你可以在这里测试它 https://regexr.com/5hjpc,想法是只测试 1 - 12 之间的数字,不多不少 (2认同)

Ing*_*ngo 8

是的,正确的:

[1-9]|1[0-2]
Run Code Online (Sandbox Code Playgroud)

否则你不会得到10.


小智 8

这是更好的答案,完全匹配从 1 - 12。

(^0?[1-9]$)|(^1[0-2]$)
Run Code Online (Sandbox Code Playgroud)

以前的答案不适用于 HTML 输入正则表达式验证,其中某些值(如“1111”或“1212”)仍将其视为有效输入。