Javascript RegEx用于检查字符串中的特定数量的数字字符,而不管其他字符

时间:2014-08-22 10:58:51

标签: javascript regex

我有一个字段,用户将输入一个9位数字字符串。

例如 975367865

但是有些用户会输入带有分隔符的9位数字字符串,例如“ - ”和“/”。

例如 9753/67/865或9753-67-865

我想确保用户输入了最小的9个数字,即使用户添加了“ - ”& “/”字符串中的某个地方。

希望这是有道理的。

非常感谢您的帮助。

3 个答案:

答案 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位数字!

View an online regex demo!

答案 2 :(得分:0)

 (?=[\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9][\-\/]*[0-9]+[\-\/]*)(.*)

虽然看起来相当长的正则表达式,但对你的情况非常有效。 看看演示。

http://regex101.com/r/uR2aE4/3