如何在TypeScript中替换字符串中的子串
有时,在使用TypeScript时,我们需要用一个新的字符串或任何特定的字符来替换一个子串。替换子串或部分字符串的简单方法是使用 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()库方法从第1个索引获得与oldString的长度相同的子串。
-
第5步 – 将子串与oldString匹配。如果在第i个索引位置的子串与oldString匹配,则向tempString添加一个新字符串。
-
第6步 – 用oldstring的长度增加’i’变量的值-1。
-
第7步 – 如果第i个索引的子串与oldString不匹配,从mainString的第i个索引添加一个字符到tempString中。
-
第8步 – 迭代完成后,返回tempString。
示例
在下面的例子中,我们使用了mainString来替换一个新的单词。我们创建了名为replaceSubstring()的自定义函数并实现了上述算法。
在输出中,用户可以观察到,在mainString中,’TypeScript’一词被’coding’一词所取代。
// define the mainString, oldString, newString
let mainString: string =
"TutorialsPoint is the best website to learn TypeScript!";
let oldString: string = "TypeScript";
let newString: string = "Coding";
// function to replace a substring
function replaceSubString(
mainString: string,
oldString: string,
newString: string
):
string {
// create a temporary string
let tempString: string = "";
// iterate through the string
for (let i = 0; i < mainString.length; i++) {
// get the substring from ith index of length same as oldString's length and compare it with the oldString.
// If it matches with oldString, add new string to tempstring, and increase i by oldString's length-1.
if (mainString.substr(i, oldString.length) === oldString) {
tempString = tempString + newString;
i = i + oldString.length - 1;
}
else {
// if substring at index ith position doesn't match, add character from ith index to tempString
tempString = tempString + mainString[i];
}
}
// return tempString after iteration.
return tempString;
}
// call the replaceSubString function
console.log("The old string is " + mainString);
console.log("The new string is ");
console.log(replaceSubString(mainString, oldString, newString));
// define the mainString, oldString, newString
var mainString = "TutorialsPoint is the best website to learn TypeScript!";
var oldString = "TypeScript";
var newString = "Coding";
// function to replace a substring
function replaceSubString(mainString, oldString, newString) {
// create a temporary string
var tempString = "";
// iterate through the string
for (var i = 0; i < mainString.length; i++) {
// get the substring from ith index of length same as oldString's length and compare it with the oldString.
// If it matches with oldString, add new string to tempstring, and increase i by oldString's length-1.
if (mainString.substr(i, oldString.length) === oldString) {
tempString = tempString + newString;
i = i + oldString.length - 1;
} else {
// if substring at index ith position doesn't match, add character from ith index to tempString
tempString = tempString + mainString[i];
}
}
// return tempString after iteration.
return tempString;
}
// call the replaceSubString function
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()方法来替换所有出现的特定子串。我们需要调用该方法,将字符串作为我们需要进行替换的引用。
语法
用户可以按照下面的语法,用一个新的字符串替换字符串的某一部分。
str.replace(reg_exp, new_str);
参数
- reg_exp – 它需要一个正则表达式作为第一个参数来与子串匹配。
-
new_str – 这是一个新的字符串,用来替换符合正则表达式的子串。
示例
在这个例子中,我们使用了replace()方法,用 “sample “字符串替换str的特定子串。在输出中,用户可以观察到 “demo “被替换成了 “sample”。
// defining the string
let str: string = "This is a demo string!";
// use the replace method to replace the "demo" substring with "sample"
let newString: string = str.replace("demo", "sample");
console.log("The old string is " + str);
console.log("The new String is " + newString);
// defining the string
var str = "This is a demo string!";
// use the replace method to replace the "demo" substring with "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()方法,该方法也将正则表达式作为一个参数。不过,我们还是应该知道替换子串的天真方法的基本实现。