![](/img/trans.png)
[英]I am trying to replace a particular string using .replace(). First and last searches are getting replaced but not second one
[英]I am trying to replace a string with another string
所以當我輸入:
function x(z) {
if (z !== 'y') return ("There is an error!")
z = z.replace(/y/g, 'Canada');
return x(z);
}
x('y')
我收到 make “有一個錯誤”。 但我試圖讓它說“加拿大”。
我的代碼有什么問題?
謝謝!
你在那里進行了不必要的recursive
調用,
function x(z) {
if (z !== 'y') return ("There is an error!")
z = z.replace(/y/g, 'Canada');
return z;
}
這在您的上下文中根本不需要。
我認為這就是你想要做的。
function x(z) {
if (z !== 'y') return ("There is an error!")
z = z.replace(/y/g, 'Canada');
return z;
}
alert(x('y')); // Canada
刪除對 x(z) 的不必要調用。 見下文
function x(z) {
if (z !== 'y') return ("There is an error!");
z = z.replace(/y/g, 'Canada');
return z; // changed from return x(z), unnecessary recursion
}
console.log(x('y'));
因為在第二次執行遞歸時z
已經被Canada
替換了。 順便說一句,在您的情況下使用正則表達式毫無意義。
function x(z) {
if (z !== 'y') return ("There is an error!")
z = z.replace('y', 'Canada');
}
x('y')
該代碼完全按照您的要求執行。
你是說:返回“有一個錯誤!” 如果 var z 不等於 'y',否則使用不等於 'y' 的值調用相同的函數。
然后你用'y'調用函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.