我有一个字段,用户将输入一个9位数字字符串。
例如 975367865
但是有些用户会输入带有分隔符的9位数字字符串,例如“ - ”和“/”。
例如 9753/67/865或9753-67-865
我想确保用户输入了最小的9个数字,即使用户添加了“ - ”& “/”字符串中的某个地方。
希望这是有道理的。
非常感谢您的帮助。
答案 0 :(得分:1)
你可以删除任何不是数字的东西,以提供一个很好的规范化形式:
var number = input.replace(/[^\d]/g, "");
var ok = number.length == 9;
答案 1 :(得分:0)
与量词匹配:
/^\d(?:\D*\d){8}$/
^$
是锚点,它在String的结尾处断言位置。这声明了整个比赛,但由于你只是匹配,你可以把它们排除在外!\d
匹配一个数字。\D*
会跳过任何非数字。然后,数字将与\d
匹配。(?: ){8}
断言后来的交替匹配八次。与第一场比赛分开,这声称比赛中有9位数字!答案 2 :(得分:0)
(?=[\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9]+[\-\/]*)(.*)
虽然看起来相当长的正则表达式,但对你的情况非常有效。 看看演示。