[英]Regex to replace a string containing variable
我是正则表达式的新手。 我在这里有一个问题。 我使用xpaths字符串。 如果元素具有id = myVar
我想从xpath字符串中删除特定元素
例:
/html/body/div[3]/div[20]/section[1]/p[5]/span[1][@id="var645932"]/span
我想用/span[1][@id="var645932"]/
替换/span[1][@id="var645932"]/
/
如果我的变量值等于id值,即var645932
我需要用javascript做。 都是字符串。 我更喜欢正则表达式。 如果有正则表达式专家,请提供帮助。 被困在这里。 没有正则表达式,有可能完成它吗?
任何帮助都受到高度赞赏:) TIA
尝试这个:
var input = '/html/body/div[3]/div[20]/section[1]/p[5]/span[1][@id="var645932"]/span';
var regex = /\w+\[\w+\]\[\@id="var645932"\]\//gi;
input = input.replace(regex, '');
console.log(input);
即使HTML的结构发生更改,此正则表达式也可以正常工作,例如:
var input = '/html/body/div[3]/div[20]/section[1]/div[6][@id="var645932"]/span';
如果您需要以编程方式在正则表达式中设置id
,请使用以下命令:
var regex = new RegExp('/\w+\[\w+\]\[\@id="' + id + '"\]\//', 'gi');
您可以使用以下代码-
var expr = '/html/body/div[3]/div[20]/section[1]/p[5]/span[1][@id="var645932"]/span';
var idVal = "var645932";
expr = expr.replace('span[1][@id="'+idVal+'"]/','');
好吧,你可以通过以下方式做到
var id = "var645932";
var regx = new RegExp('/[^/]+?\\[@id="' + id + '"]/');
var str = '/html/body/div[3]/div[20]/section[1]/p[5]/span[1][@id="var645932"]/span';
console.log(str.replace(regx, "/"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.