美文网首页
巧用正则实现indexOf,以及字符串当中字母取反

巧用正则实现indexOf,以及字符串当中字母取反

作者: lessonSam | 来源:发表于2020-03-31 09:26 被阅读0次
    /* 如何把字符串当中的大小写取反 */
    
    let str = 'sanMuLessON 很帅!*100哈哈';
    
    for (let i = 0; i < str.length; i++) {
      // 这种方法很low 不写了
    }
    
    str = str.replace(/[a-zA-Z]/g, content => {
      // =>content 每一次正则匹配的范围
      // 验证大小写 通过 字符串的方法UperCase
      // 通过ascII码 =》content.chatCodeAt()>=65&&content.chatCodeAt()<=90
    
      return content.toUpperCase() === content
        ? content.toLowerCase()
        : content.toUpperCase();
    });
    console.log('====================================');
    console.log(str);
    console.log('====================================');
    
    /* 实现一个字符串匹配算法,从字符串S 当中检测是否存在字符串T,如存在则返回起始位置,若不存在则返回-1 前提 不能使用 indexOf/includes 等内置的方法,你会如何处理呢 */
    
    let S = 'lesson is superman';
    let T = 'isA';
    ~(function() {
      /* 1. 循环原始字符串中的每一项,让每一项都往后截取t.length个位置,然后heT 进行比较 如果不一样 则继续比较 一样就返回当前位置 太low */
      // function myIndexOf(T) {
      //   //=>this:S
      //   let lenT = T.length;
      //   let lenS = this.length;
      //   if (lenT > lenS) return (res = -1);
    
      // let res = -1;
    
      //   for (let i = 0; i <= lenS - lenT; i++) {
      //     if (this.substr(i, lenT) === T) {
      //       res = i;
      //       break;
      //     }
      //   }
      //   return res;
      // }
    
      function myIndexOf(T) {
        let reg = new RegExp(T),
          res = reg.exec(this);
        return (res = res === null ? -1 : res);
      }
    
      String.prototype.myIndexOf = myIndexOf;
    })();
    
    console.log(S.myIndexOf(T));
    

    相关文章

      网友评论

          本文标题:巧用正则实现indexOf,以及字符串当中字母取反

          本文链接:https://www.haomeiwen.com/subject/igdiuhtx.html