zoukankan      html  css  js  c++  java
  • javascript String.indexOf实现

    群里abcd提出问题,现在有以下三个实现,欢迎大家参与(注意,为了兼容IE6,不能使用str[i],要用str.charAt(i);不能使用slice,replace等原生函数):

    GrayZhang的实现

    
    String.prototype.substring = function(start, length) {
        var array = [];
        for (var i = start; i < start + length; i++) {
            array.push(this.charAt(i));
        }
        return array.join();
    };
    String.prototype.indexOf = function(s) {
        for (var i = 0; i < this.length - s.length; i++) {
            if (this.charAt(i) === s.charAt(0) &&
                this.substring(i, s.length) === s) {
                return i;
            }
        }
        return -1;
    };
    

    我的实现:

    //by 司徒正美 2011.8.18
    String.prototype.indexOf = function(sub){
            var a = sub.charAt(0),an = sub.length,n = this.length;
            if(n == an){
              return this == sub ? 0 : -1
            }
            if(n < an){
              return -1
            }
            loop:
              for(var i=0;i < n;i++){
              if(this.charAt(i) == a){
                for(var j=1;j < an;j++){
                  if(this.charAt(j+i) != sub.charAt(j)){
                    continue loop
                  }
                }
                return i
              }
            }
            return -1;
          }
    
           var a = "aabbccb";
          console.log(a.indexOf("bbccb"))//2
          console.log("Blue Whale".indexOf("Blue") )   // returns 0
          console.log("Blue Whale".indexOf("Blute"))   // returns -1
    
  • 相关阅读:
    微信支付之退款
    解决The mysql extension is deprecated and will be removed
    网站域名授权
    PHP 异或 算法
    TCP与UDP的区别
    java基于javaMail实现向QQ邮箱发送邮件
    Servlet的生命周期
    Tomcat容器模型原理
    java转义字符
    web获取URL相关信息
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/2144894.html
Copyright © 2011-2022 走看看