你好,
我有這個代碼:
var room = 'room2';
var exitroom = 'room1,room2,room3';
exitroom = exitroom.replace(/,${room},/,'');
console.log(exitroom);
你可以在這里試試:https : //jsfiddle.net/uq9w0Ls4/
我的預期輸出只是room1,room3取出room2,但由于它可能會改變它在字串中的位置,我想定位,它,無論它是在字串之前還是之后,但我無法弄清楚這里的正則運算式邏輯。我知道我可以簡單地做:
var room = 'room2';
var exitroom = 'room1,room2,room3';
exitroom = exitroom.replace(room ',','').replace(',' room,'');
console.log(exitroom);
這有效,但我認為正則運算式將是一種更直接的方法。
謝謝你。
uj5u.com熱心網友回復:
首先,通過撰寫.replace(/,${room},/,'')您沒有使用可變空間。
要在正則運算式中使用變數,您應該呼叫 new RegExp()
其次,如果您想要一個在逗號位于單詞之前或之后匹配的正則運算式,您可以使用()帶有 Or|運算子的組。
所以它應該是這樣的:
var reg = new RegExp(`(?:${room},|,${room})`, "g");
exitroom.replace(reg,'');
將?:在該組的開頭,只是所以它應該是一個非捕獲組,它應該只是罰款也沒有它
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/357750.html
標籤:javascript 正则表达式
上一篇:重繪頁面后留在同一個標??簽頁
