我正在尝试将javascript正则表达式匹配:
到目前为止我已经
了^[0-9-+\/\s]{9,}$
这个(我认为)的唯一问题是它会计算非数字允许的字符数,以达到最小值9.
如何修改它以便只计算数字达到最小值9?
答案 0 :(得分:7)
如果你想在一个RE中解决这个问题(不一定推荐,但有时候很有用):
^[-+\/\s]*([0-9][-+\/\s]*){9,}$
或者,如果您希望第一个和最后一个字符为数字:
^[0-9](^[-+\/\s]*[0-9]){8,}$
那是:一个数字,然后是八个或更多个可选字符的运行,每个字符以数字结尾。
答案 1 :(得分:3)
您可以使用预测检查是否有9位或更多位数
^(?=(\D*\d){9,})[\d/+ -]+$
--------------
|
|->match further only if there are 9 or more digits anywhere
或强>
^([/+ -]*\d){9,}[/+ -]*$
答案 2 :(得分:1)
^([0-9][-+\/\s]*){9,}$
应该这样做。
答案 3 :(得分:0)
简单的预见
尝试这种模式:
^(?=([^\d]*\d){9,})[0-9-+\/\s]*$