在javascript中我需要解析用户输入。输入格式为:number - number
。这可以重复并用逗号分隔。
以下是一些例子:
1-10
4-10,13-17
6-10,3-8,4-12
这是我为此写的正则表达式
(\d+[-]\d+[,]?)
但是,有2个限制。
有没有办法可以用正则表达式强制执行这些约束?
答案 0 :(得分:2)
虽然您当然可以将格式与正则表达式匹配,但您无法使用它们进行所需的验证。我推荐的是这样的(在JS中):
function verifyList(list) {
var matches = list.match(/\d+-\d+/g);
for (match in matches) {
var numbers = match.match(/(\d+)-(\d+)/);
if (numbers[1] >= numbers[2]) return false;
}
return true;
}