Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用正则表达式验证由分号分隔的数值范围_Regex_String - Fatal编程技术网

Regex 使用正则表达式验证由分号分隔的数值范围

Regex 使用正则表达式验证由分号分隔的数值范围,regex,string,Regex,String,我需要一个正则表达式来使用Javascript验证格式字符串: 119122178-181185119122178-1812119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185122178 我的Regexp 问题是可能存在类似“n-

我需要一个正则表达式来使用Javascript验证格式字符串:

119122178-181185119122178-1812119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185119122178-181185122178

我的Regexp

问题是可能存在类似“n-x”的范围

0-1,2,3,4-7,8,9-20,21

非常感谢你的帮助


PS:空间管理和重复我将在另一个实例中执行此操作

您是否可以将重复模式与一个或多个数字与可选部分匹配?与破折号和一个或多个数字匹配,后跟逗号或行尾
$

或者重复可选部分
(?:\d+(?:-\d+)*
零次或多次,包括逗号,并确保最后一次匹配是
\d+(?:-\d+)

const字符串=[
"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,测试”
];
让模式=/^(?:\d+(?:-\d+)*\d+(?:-\d+)$/;
strings.forEach((s)=>{
控制台日志(模式测试);
});