簡體   English   中英

使用字符串替換將變量傳遞給正則表達式

[英]Pass a variable into regex with string replace

我在字符串替換中有一個復雜的regEx,我想使用一個名為“tagname”的變量而不是單詞Category,但我不知道如何做到這一點。

$("textarea").val().replace(/\<Category\>(.*)\<\/Category\>/gi, "<Category>TextVariable</Category>");

我嘗試過這樣的東西,但它在第一個參數中沒有用。

$("textarea").val().replace("/\<" + tagname + "\>(.*)\<\/" + tagname "\>/gi", "<" + tagname + ">" + TextVariable + "</" + tagname + ">");

您可以使用帶有字符串模式和標志的RegExp構造函數:

var regex = new RegExp("<" + tagname + ">(.*)</" + tagname + ">", "gi");
$("textarea").val().replace(regex, "<" + tagname + ">" + TextVariable + "</" + tagname + ">");

使用RegExp構造函數而不是正則表達式文字。

var regex = new RegExp("<" + tagname + ">(.*)</" + tagname + ">", "gi");
$("textarea").val().replace(regex, "<" + tagname + ">" + 
   textVariable + "</" + tagname + ">");

你可以簡化為:

//capture the tag name:
var regex = new RegExp("<(" + tagname + ")>(.*)</" + tagname + ">", "gi");
$("textarea").val().replace(regex, "<$1>" + textVariable + "</$1>");

但請記住, 使用正則表達式解析xml / html是一個很好的想法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM