如何在 TypeScript 中替换字符串中的子字符串?
在使用 TypeScript 时,有时我们需要用新字符串或任何特定字符替换子字符串。替换子字符串或部分字符串的简单方法是使用 replace() 方法。
在这里,我们将创建一个自定义算法来替换字符串,以方便初学者进行面试。不过,在本教程的最后,我们还将介绍 replace() 方法。
创建自定义算法来替换子字符串
在本部分中,我们将使用 for 循环遍历主字符串。我们将使用字符串库的 substr() 方法来查找索引"i"处的子字符串是否与可替换字符串匹配。如果索引位置"i"处的子字符串与可替换字符串匹配,我们将用新字符串替换它。
语法
在下面的语法中,我们实现了自定义算法,将字符串的一部分替换为新字符串。我们使用 substr() 方法来查找旧的子字符串。
function replaceSubString( mainString: string, oldString: string, newString: string ): string { let tempString: string = ""; for (let i = 0; i < mainString.length; i++) { if (mainString.substr(i, oldString.length) === oldString) { tempString = tempString + newString; i = i + oldString.length-1; } else { tempString = tempString + mainString[i]; } } return tempString; }
参数
上述自定义函数接受三个字符串类型的参数。
mainString − 我们需要替换其中的字符串。
oldString − 需要替换的子字符串。
newString − 需要被 oldString 替换的新字符串。
算法
步骤 1 − 创建一个函数,该函数接受 mainString、oldString 和 newString 作为参数,并返回一个字符串。
步骤 2 − 创建一个 tempString 变量,用于存储替换后的字符串。
步骤 3 − 使用 for循环遍历字符串。
步骤 4 − 使用 substr() 库方法从第 i 个索引处获取长度与 oldString 相同的子字符串。
步骤 5 − 将子字符串与 oldString 匹配。如果第 i 个索引处的子字符串与旧字符串匹配,则将新字符串添加到 tempString。
步骤 6 − 将变量"i"的值增加旧字符串的长度 - 1。
步骤 7 − 如果第 i 个索引处的子字符串与旧字符串不匹配,则将主字符串中第 i 个索引处的字符添加到 tempString。
步骤 8 − 迭代完成后,返回 tempString。
示例
在下面的示例中,我们使用主字符串将一个单词替换为新单词。我们创建了一个名为 replaceSubstring() 的自定义函数,并实现了上述算法。
在输出中,用户可以观察到 mainString 中的"TypeScript"一词被"coding"一词替换。
// 定义 mainString、oldString 和 newString let mainString: string = "TutorialsPoint is the best website to learn TypeScript!"; let oldString: string = "TypeScript"; let newString: string = "Coding"; // 用于替换子字符串的函数 function replaceSubString( mainString: string, oldString: string, newString: string ): string { // 创建一个临时字符串 let tempString: string = ""; // 遍历字符串 for (let i = 0; i < mainString.length; i++) { // 从第 i 个索引处获取长度与旧字符串相同的子字符串,并将其与旧字符串进行比较。 // 如果与旧字符串匹配,则将新字符串添加到临时字符串中,并将 i 的值增加旧字符串的长度 -1。 if (mainString.substr(i, oldString.length) === oldString) { tempString = tempString + newString; i = i + oldString.length - 1; } else { // 如果第 i 个索引处的子字符串不匹配,则将第 i 个索引处的字符添加到临时字符串中 tempString = tempString + mainString[i]; } } // 迭代后返回临时字符串。 return tempString; } // 调用 replaceSubString 函数 console.log("The old string is " + mainString); console.log("The new string is "); console.log(replaceSubString(mainString, oldString, newString));
编译后,它将生成以下 JavaScript 代码 -
// 定义 mainString, oldString, newString var mainString = "TutorialsPoint is the best website to learn TypeScript!"; var oldString = "TypeScript"; var newString = "Coding"; // 替换子字符串的函数 function replaceSubString(mainString, oldString, newString) { // 创建一个临时字符串 var tempString = ""; // 遍历字符串 for (var i = 0; i < mainString.length; i++) { // 从第 i 个索引处获取长度与旧字符串相同的子字符串,并将其与旧字符串进行比较。 // 如果与旧字符串匹配,则将新字符串添加到临时字符串中,并将 i 的值增加旧字符串的长度 -1。 if (mainString.substr(i, oldString.length) === oldString) { tempString = tempString + newString; i = i + oldString.length - 1; } else { // 如果第 i 个索引处的子字符串不匹配,则将第 i 个索引处的字符添加到临时字符串中 tempString = tempString + mainString[i]; } } // 迭代后返回临时字符串。 return tempString; } // 调用 replaceSubString 函数 console.log("The old string is " + mainString); console.log("The new string is "); console.log(replaceSubString(mainString, oldString, newString));
输出
上述代码将产生以下输出 -
The old string is TutorialsPoint is the best website to learn TypeScript! The new string is TutorialsPoint is the best website to learn Coding!
使用 replace() 方法替换字符串的一部分
replace 方法允许我们替换字符串的正则表达式或特定单词。此外,我们还可以使用 replace() 方法替换特定子字符串的所有出现。我们需要将需要替换的字符串作为引用来调用该方法。
语法
用户可以按照以下语法将字符串的特定部分替换为新字符串。
str.replace(reg_exp, new_str);
参数
reg_exp − 它接受一个正则表达式作为第一个参数,用于匹配子字符串。
new_str − 它是一个新字符串,用于替换与正则表达式匹配的子字符串。
示例
在此示例中,我们使用 replace() 方法将 str 中的特定子字符串替换为字符串"sample"。在输出中,用户可以观察到"demo"被替换为"sample"。
// 定义字符串 let str: string = "This is a demo string!"; // 使用 replace 方法将子字符串"demo"替换为"sample" let newString: string = str.replace("demo", "sample"); console.log("The old string is " + str); console.log("The new String is " + newString);
编译后,它将生成以下 JavaScript 代码 -
// 定义字符串 var str = "This is a demo string!"; // 使用 replace 方法将"demo"子字符串替换为"sample" var newString = str.replace("demo", "sample"); console.log("The old string is " + str); console.log("The new String is " + newString);
输出
上述代码将产生以下输出 -
The old string is This is a demo string! The new String is This is a sample string!
在本教程中,我们学习了用新字符串替换字符串特定部分的不同方法。显然,替换字符串的最佳方法是使用 replace() 方法,该方法也接受正则表达式作为参数。不过,我们应该了解替换子字符串的简单方法的基本实现。