簡體   English   中英

如何將變量值用作正則表達式模式

[英]How to use a variable value as a regex pattern

我很絕望-我看不到我在做什么錯。 我嘗試替換所有出現的“ 8969”,但我總是得到原始字符串(無論tmp是字符串還是int)。 也許已經為時已晚,也許我是盲人,...

var tmp = "8969";
alert("8969_8969".replace(/tmp/g, "99"));

有人可以幫我嗎?

在這種情況下, /字符是正則表達式的容器。 因此,“ tmp”不用作變量,而用作文字字符串。

var tmp = /8969/g;
alert("8969_8969".replace(tmp, "99"));
alert("8969_8969".replace(/8969/g, "99"));

要么

var tmp = "8969"
alert("8969_8969".replace(new RegExp(tmp,"g"), "99")); 

現場演示

處理正則表達式的動態方式:

var nRegExp = new RegExp("8969", 'g');
alert("8969_8969".replace(nRegExp, "99"));

/tmp/g 這是一個正則表達式,查找短語"tmp" 您需要使用new RegExp來制作動態正則表達式。

alert("8969_8969".replace(new RegExp(tmp,'g'), "99"));

JavaScript不支持TMP的這種使用,它會嘗試使用“TMP”從字面上看,作為一個正則表達式。

"8969_8969".replace(new RegExp(tmp,'g'), "99")

暫無
暫無

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

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