JavaScript正则表达式,不同长度但不是范围

时间:2014-08-05 17:47:49

标签: javascript regex

我有兴趣以简洁的方式为一串数字指定不同的允许长度。我想允许长度为2,4,6,8和10的字符串,但两者之间没有任何内容。以下工作正常,但有点啰嗦:

var regex = /^([0-9]){2}|([0-9]){4}|([0-9]){6}|([0-9]){8}|([0-9]){10}$/;

我能做一个更短,更少暴力的方法吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

  

我想允许长度为2,4,6,8和10的字符串,但

之间没有任何内容

你可以试试。较短的版本

^([0-9]{2}){1,5}$

DEMO

OR简单来说

^([0-9][0-9]){1,5}$

将整个正则表达式括在括号(...)中以捕获组。

正则表达式解释:

  ^                        the beginning of the string
  (                        group and capture to \1 (between 1 and 5 times):
    [0-9]{2}                 any character of: '0' to '9' (2 times)
  ){1,5}                   end of \1
  $                        the end of the string