Javascript正则表达式仅匹配数字1到11

pen*_*ngz 2 javascript regex validation

我需要在 Javascript (不是 JQUERY)中创建一个正则表达式。

正则表达式必须仅匹配 1 到 11 之间的数字。

我开始使用这个正则表达式来允许数字 1 到 11,但它也允许 21、31、41、51 等。我只是需要数字 1 到 11。谢谢。

var range = /([0-9][0-1]{1,2})/g;
Run Code Online (Sandbox Code Playgroud)

澄清:我需要使用正则表达式进行表单验证。我正在使用 HTML 属性“min/max”,但我正在使用的平台仍然提交表单,因此我需要在提交到服务器之前在客户端捕获它。

Tam*_*Rev 5

这是正则表达式,假设文本只能包含这个数字,而不能包含其他内容:/^([1-9]|1[01])$/

你可以在这里玩这个。

解释:

  • /^...$/确保它从头到尾匹配。所以12不会仅仅因为开始而匹配1
  • 另一种方法(...|...)允许两种数字:
    • [1-9]允许 1 到 9 之间的一位数字。
    • 1[01]允许以 1 开头的两位数字,然后是 0 或 1。

  • 但是,您无法完全删除锚点。这将匹配任何数字,例如“111”。您至少需要检查单词边界 - `/\b([1-9]|1[01])\b/`。 (2认同)