簡體   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