【发布时间】:2016-10-30 04:08:23
【问题描述】:
如何创建一个只接受最多 12 位数字的正则表达式? 非常感谢
【问题讨论】:
-
阅读一些正则表达式教程,应该不会太难。
标签: javascript angularjs regex
如何创建一个只接受最多 12 位数字的正则表达式? 非常感谢
【问题讨论】:
标签: javascript angularjs regex
/^\d{0,12}$/
...分解为...
/ # start regex
^ # anchor to start of string
\d # 0-9
{0,12} # 0-12 times
$ # anchor end of string
/ # end regex
【讨论】:
(?:^|[^0-9])([0-9]{1,12})(?![0-9])
我根据答案将问题分为 3 个部分。
(?:^|[^0-9]) 表示以非数字字符开头或不以任何字符开头
[0-9] 表示我们只想消费数字
{1,12} 表示我们要消耗最多 12 个字符
?表示看但不消耗
![0-9] 表示这个字符可以是除数字以外的所有字符。
【讨论】:
(?=[^0-9]) 成功。
(?![0-9]),相当于(?=[^0-9]|$)),你需要从这样的交替开始:(?:^|[^0-9])。要提取十二位数,唯一的方法是使用捕获组。