我有兴趣以简洁的方式为一串数字指定不同的允许长度。我想允许长度为2,4,6,8和10的字符串,但两者之间没有任何内容。以下工作正常,但有点啰嗦:
var regex = /^([0-9]){2}|([0-9]){4}|([0-9]){6}|([0-9]){8}|([0-9]){10}$/;
我能做一个更短,更少暴力的方法吗?
谢谢!
答案 0 :(得分:3)
我想允许长度为2,4,6,8和10的字符串,但
之间没有任何内容
你可以试试。较短的版本
^([0-9]{2}){1,5}$
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