我正在尝试制作一个 javascript 正则表达式来匹配:
- 要求:9 个或更多数字。
- 可选:破折号、正斜杠、加号和空格字符。
- 禁止:任何其他字符
到目前为止我有
^[0-9-+\/\s]{9,}$
唯一的问题(我认为)是它计算允许的非数字字符以达到最小 9。
我怎样才能修改它,使它只计算达到最小 9 的数字?
我正在尝试制作一个 javascript 正则表达式来匹配:
到目前为止我有
^[0-9-+\/\s]{9,}$
唯一的问题(我认为)是它计算允许的非数字字符以达到最小 9。
我怎样才能修改它,使它只计算达到最小 9 的数字?
如果您想在单个 RE 中解决此问题(不一定推荐,但有时很有用):
^[-+\/\s]*([0-9][-+\/\s]*){9,}$
或者,如果您希望第一个和最后一个字符是数字:
^[0-9](^[-+\/\s]*[0-9]){8,}$
那是:一个数字,后面跟着八个或更多的可选字符,每个都以一个数字结尾。
您可以使用前瞻检查任何地方是否有 9 位或更多位
^(?=(\D*\d){9,})[\d/+ -]+$
--------------
|
|->match further only if there are 9 or more digits anywhere
或者
^([/+ -]*\d){9,}[/+ -]*$
^([0-9][-+\/\s]*){9,}$
应该做。
它很简单,具有前瞻性
试试这个模式:
^(?=([^\d]*\d){9,})[0-9-+\/\s]*$