我正在尝试编写一个与01, 03, 05-08, 10
匹配但与01, 03, 05-08,
不匹配的RegExp(因为序列必须以数字结尾)。
所以基本上我的"字符串"由/(\-?\d+)\-(\-?\d+)/
(例如01-05或-5-10)组成,此模式的每个实例都用逗号分隔。
我用RegExr尝试了一段时间,但无法找到解决问题的方法。这是我的尝试:http://regexr.com?34hh1
使用RegExp我想做SEQUENCE_EXP.test('一些字符串')。
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以使用$
运算符指示字符串必须以表达式结尾。在你的情况下,你可以尝试:
/^((-?\d+(-\d+)?)\s*,\s*)+(-?\d+(-\d+)?)$/
请注意,您不必转义方括号外的-
。
答案 2 :(得分:0)
因此,您有两种模式,即有效数字\d+
和\d+-\d+
因此NUMBER_PATTERN
必须为\d+(-\d+)?
序列NUMBER_PATTERN[, NUMBER_PATTERN]*
这个怎么样:
/\d+(-\d+)?(, \d+(-\d+)?)*$/
答案 3 :(得分:0)
答案 4 :(得分:0)
function test(r){
return "01, 03, 05-08, 10".match(r) &&
!"01, 03, 05-08,".match(r)
}
test(/^(\d+(-\d+)?,\s*)*\d+$/)