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