Search and replace

题目要求

使用给定的参数对句子执行一次查找和替换,然后返回新句子。

第一个参数是将要对其执行查找和替换的句子。

第二个参数是将被替换掉的单词(替换前的单词)。

第三个参数用于替换第二个参数(替换后的单词)。

注意:替换时保持原单词的大小写。例如,如果你想用单词 “dog” 替换单词 “Book” ,你应该替换成 “Dog”。


解析

题目中给出了三个参考知识点

1、Array.splice()

该方法会返回一个将字符串分割成数组元素的数组

2、String.replace(before,after)

该方法可以将字符串中之前的元素替换成 之后的元素,但是对大小写不敏感

3、Arr.join()

该函数可以按照所给定的字符将数组组成由其连接的字符串

4、Array.slice(num)

将数组从num位后切断,返回一个新的字符串

5、RegExp.test()(RegExp表示正则表达式)

该方法表示执行一个检索,用来查看指定字符串和正则表达式是否匹配,返回true or false
e.g:

function testinput(re, str){
    var midstring;
    if (re.test(str)) {
        midstring = " contains ";
    } else {
        midstring = " does not contain ";
    }
    console.log(str + midstring + re.source);
}

6、访问字符串中某字母的方法

I、索引方式访问字符串。JavaScript中可以用索引方式访问单个字符,就像访问数组中的某一项一样。
e.g:

if(before[0] === before[0].toUpperCase()){
    //and
  }

II、用 charAt() 访问单个字符


解题思路

第一步:通过判断替换前单词首字母的大小写,完成对替换后单词的首字母大小写转换

(法一:索引
法二:正则表达式+charAt())

第二步:直接通过replace函数将单词替换
第三步:将大象放进去
第四步:关上门

Javascript代码

法一

function myReplace(str, before, after) {
  if(before[0] == before[0].toUpperCase()){
    after = after[0].toUpperCase() + after.slice(1);
  }
  str = str.replace(before,after);
  return str;
}

myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");

法二

function myReplace(str, before, after) {
  var re = /^[A-Z]/;
  if(re.test(before.charAt(0))){
    after = after.charAt(0).toUpperCase() + after.slice(1);
  }
  str = str.replace(before,after);
  return str;
}

myReplace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");

结语

这个题目怎么说呢,似曾相识,但是对索引和正则表达式的用法不熟,所以没能一下做出来,也注意到了replace()可以直接用在字符串的替换中,学到,赚到。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值