چگونه میتوانیم تمام موارد استفاده از یک رشته در رشته دیگر را در جاوااسکریپت جایگزین کنیم؟
اگر بخواهید تمام موارد یک رشته خاص را در یک رشته بزرگتر در جاوااسکریپت تعویض کنید، چندین روش وجود دارد که میتوانید از آنها استفاده کنید. در اینجا به برخی از آنها اشاره میشود:
1. استفاده از متد String.replaceAll()
از آگوست 2020، مرورگرهای مدرن از متد String.replaceAll()
که در استاندارد ECMAScript 2021 تعریف شده، پشتیبانی میکنند. استفاده از این متد بسیار ساده است:
let result = "1 abc 2 abc 3".replaceAll("abc", "xyz");
// `result` برابر است با "1 xyz 2 xyz 3"
پیش از استفاده از این متد، حتماً بررسی کنید که آیا مرورگر مورد نظر شما از آن پشتیبانی میکند یا خیر.
2. استفاده از عبارات منظم
در اینجا یک نمونه از نحوه تعویض تمامی موارد با استفاده از عبارات منظم آورده شده است:
function escapeRegExp(str) {
return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // برای فرار رفتن از کاراکترهای خاص
}
function replaceAll(str, find, replace) {
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}
let string = "Test abc test test abc test test test abc test test abc";
string = replaceAll(string, 'abc', '');
// مقدار رشته خالی از "abc" خواهد بود
3. روش Split و Join
یک روش دیگر برای تعویض تمام موارد، استفاده از متدهای split()
و join()
است. این روش ممکن است از لحاظ عملکرد کمی کندتر باشد ولی برای مواردی که کاراکترهای خاص ندارید، میتواند مناسب باشد:
let string = "Test abc test test abc test test test abc test test abc";
string = string.split('abc').join('');
این روش به سادگی رشته را به لیستی از زیررشتهها تقسیم میکند و سپس آنها را با استفاده از مقدار مورد نظر به هم متصل میکند.