2017-07-07 21 views
0

我有以下字符串:替換字符串表達式

var myString = "Name: "; 

function replaceName(str, name) { 
    return str.replace(/Name:/gi, "Name:" + name); 
} 

myString = replaceName("Name: ", "Joe"); 
myString = replaceName("Name: ", "Jane"); 

我想每次添加一個新的名字時更換整條生產線。上面不斷追加名稱到字符串的末尾。

如何在每次調用str.replace時更換名稱?

+0

您要求將其替換爲'「Name:」+「Joe」'。你想要什麼樣的輸出? –

+0

確切的說......它可以正常工作...... –

+0

@Rory如果你第二次使用不同的值調用函數,它會附加它。 – adam78

回答

1

首先,你可能已經清楚地提到第二次調用函數會搞砸了。其次,你的代碼中沒有功能,所以你需要知道哪個線路搞亂了。我在Rory McCrossan的幫助下理解了這個問題,下面是答案。

我改變了代碼,並使用這個正則表達式的工作:

var str = "Name: "; 
 
str = str.replace(/Name:.*/gi, "Name:" + "Joe"); 
 
console.log(str); 
 
str = str.replace(/Name:.*/gi, "Name:" + "Prav"); 
 
console.log(str);

解釋爲正則表達式

preview

吱吱:沒有比這更好的解釋比RegEx101 ...

+0

,就可以爲該正則表達式添加解釋:) – guradio

+1

@guradio絕對配對。現在這樣做... –

+0

謝謝mate .. :) – guradio