繁体   English   中英

正则表达式替换包含变量的字符串

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM