我有这个正则表达式匹配长度超过3的数字。
/[+0123456789]{3,}/
所以,这会检测到
123, 896540, 4654654654
我想对用字母写的数字做同样的事情。
onetwothree, eightninesixfivefourzero, ...
有人可以帮我找到正则表达式吗?
答案 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,以确保您不会意外匹配done
或height
等部分字词。
要合并两者,请使用
/\+?\b(?:one|two|three|four|five|six|seven|eight|nine|zero|[0-9]){3,}/