我需要一个正则表达式来验证格式的字符串,使用Javascript
119,122,178-181,185,119,122,178-181,2,119,122,178-181,185,119,122,178-181,185,119,122,178-181,185,119,122,178-181,185,119,122,178-181,185,119,122,178-181,185,119,122,178-181,185
我的Regexp https://regex101.com/r/nhFnKE/1
问题是,可能有"n - x“这样的范围。
0-1,2,3,4-7,8,9-20,21
非常感谢你的帮助
PS:空间管理和重复,我将在另一个实例中这样做。
发布于 2018-06-08 15:00:23
您可以将重复的模式与一个或多个数字与可选部分匹配吗?,它匹配一个破折号和一个或多个数字,后面跟着逗号或行$
的末尾。
或重复可选部分(?:\d+(?:-\d+)?,)*
0次或多次,包括逗号,并确保最后一次匹配为\d+(?:-\d+)?
。
^(?:\d+(?:-\d+)?,)*\d+(?:-\d+)?$
const strings = [
"119,122,178-181,185,119,122,178-181,2,119,122,178-181,185,119,122,178-181,185,119,122,178-181,185,119,122,178-181,185,119,122,178-181,185,119,122,178-181,185,119,122,178-181,185",
"0-1,2,3,4-7,8,9-20,21",
"0-1,2,test"
];
let pattern = /^(?:\d+(?:-\d+)?,)*\d+(?:-\d+)?$/;
strings.forEach((s) => {
console.log(pattern.test(s));
});
https://stackoverflow.com/questions/50763290
复制相似问题