
查询替换算法挑战
方法一:
function myReplace(str, before, after) {
var bef = before.split('');
var aft = after.split(''); //将两个单词都拆分成单词数组
if(bef[0] >= 'A' && bef[0] <= 'Z'){ //判断before开头第一个字母是否是大写
aft[0] =aft[0].toUpperCase(); //toUpperCase函数并不会改变原字符串,所以得用赋值的形式
after = aft.join(''); //如果是大写,将after的首字母也转换成大写,然后合成新的after字符串
}
var newStr = str.replace(before,after); //用replace函数替换掉目标单词
return newStr;
}
myReplace("He is Sleeping on the couch", "Sleeping", "sitting");
方法二:
function myReplace(str, before, after) {
var c = before.charAt(0),
newAfter='';
if(c<'A' || c>'Z'){
newAfter = after.charAt(0).toLowerCase() + after.substr(1);
}else{
newAfter = after.charAt(0).toUpperCase() + after.substr(1);
}
var reg = new RegExp(before,"g");
return str.replace(reg,newAfter);
}
myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");