我想编写一个函数以获取字符串,然后将给定值替换为给定字符 就像:
function(str, charToChange, charToReplace){}
我使用了String.prototype.replace()
还有其他方法吗? (例如使用循环)
内置功能,例如replace
,join
,split
,...不应使用
var myStr = 't|e|s|t|1';
var newStr = myStr.replace(/\|/g, '');
console.log(newStr); //test1
var myStr = 'B1C1D1E1F';
var newStr = myStr.replace(/1/g, '');
console.log(newStr); //BCDEF
var myStr = 'Test*Num*One';
var newStr = myStr.replace(/\*/g, '');
console.log(newStr); //
答案 0 :(得分:2)
使用for..in
循环
function a(string, charToChange, charToReplace) {
var str = '';
for (let i in string)
string[i] != charToChange ? str += string[i] : str += charToReplace;
console.log(str)
}
a('Test*Num*One', '*', '')
a('t|e|s|t|1','|','')
a('B1C1D1E1F','1','')
使用split
和join
来达到相同的目的
var myStr = 't|e|s|t|1';
var newStr = myStr.split(/\|/g).join('');
console.log(newStr); //test1
var myStr = 'B1C1D1E1F';
var newStr = myStr.split(/1/g).join('');
console.log(newStr); //BCDEF
var myStr = 'Test*Num*One';
var newStr = myStr.split(/\*/g).join('');
console.log(newStr); //
答案 1 :(得分:1)
您可以创建一个自定义函数并分割字符串,这将创建一个数组,然后使用filter
过滤掉不需要的字符。filter
将创建另一个并使用{{1 }}加入新数组的元素
join
答案 2 :(得分:0)
replaceString = function (str, charToChange, charToReplace) {
let newStr = '';
for (let i = 0; i < str.length; i++) {
if (str[i] == charToChange) {
if (charToReplace != '') {
newStr += charToReplace;
}
}
else {
newStr += str[i];
}
}
return newStr;
}
var myStr = 't|e|s|t|1';
var newStr = replaceString(myStr, '|', '');
console.log(newStr); //test1
myStr = 'B1C1D1E1F';
newStr = replaceString(myStr, '1', '');
console.log(newStr); //BCDEF
myStr = 'Test*Num*One';
newStr = replaceString(myStr, '*', '');
console.log(newStr); //