我需要将elementId与以elementId开头的任何其他子元素ID相匹配。例如, 子元素的ID标记为1-1,1-2,...,4-5,...,8-13等。 所以,如果元素ID是2,我需要通过过滤得到这个元素的所有子元素(结果应该是2-1,2-2,2-3 ......) 我尝试使用这种模式,但它不起作用。
tuple
为了匹配这个我应该使用的RegExp模式是什么?我在下面提供了代码段。
var regEx = '/['+elementId+']*/';
//elementsId is a var derived from a previous expression
答案 0 :(得分:0)
您可以使用构造函数构建regexp,因为您知道需要手动转义特殊字符:link
var ids = ["1-1", "2-1", "2-2", "3-1", "3-2", "3-3", "3-4", "3-5"];
var buildRegex = function(id) {
return new RegExp(id + '\\-\\d+');
}
for (var i = 1; i <= 3; ++i) {
var reg = buildRegex(i);
for (var k = 0; k < ids.length; ++k) {
if (reg.test(ids[k])) {
console.log(ids[k] + " is a sub element of " + i);
}
}
}
答案 1 :(得分:0)
我认为你的正则表达式应该等于:'^' + elementId + '-'
这将检查以elementid开头的元素 -