用于检测键入字符串的数字的正则表达式

时间:2014-12-04 05:59:47

标签: regex

我有这个正则表达式匹配长度超过3的数字。

/[+0123456789]{3,}/

所以,这会检测到

123, 896540, 4654654654

我想对用字母写的数字做同样的事情。

onetwothree, eightninesixfivefourzero, ...

有人可以帮我找到正则表达式吗?

2 个答案:

答案 0 :(得分:4)

(?:one|two|three|four|five|six|seven|eight|nine|zero){3,}

你可以试试这个。

^[+-]?(?:one|two|three|four|five|six|seven|eight|nine|zero){3,}$

添加锚点以使其无法防范。如果您希望用户将其添加到+-,请在外部添加。

答案 1 :(得分:3)

虽然您可以使用character classes来表示单字符替代方案,但如果替代方案较长,则需要使用alternation。除此之外,没有变化:

/\b(?:one|two|three|four|five|six|seven|eight|nine|zero){3,}/

我还添加了word boundary anchors,以确保您不会意外匹配doneheight等部分字词。

要合并两者,请使用

/\+?\b(?:one|two|three|four|five|six|seven|eight|nine|zero|[0-9]){3,}/