J'ai récemment rencontré une question : "Comment utiliser JavaScript pour implémenter la méthode de sous-chaîne de chaîne ?" J'ai actuellement les trois solutions suivantes en tête :
Méthode 1 : Utiliser charAt pour extraire la partie interceptée :
String.prototype.mysubstring=function(beginIndex,endIndex){ var str=this, newArr=[]; if(!endIndex){ endIndex=str.length; } for(var i=beginIndex;i<endIndex;i++){ newArr.push(str.charAt(i)); } return newArr.join(""); } //test "Hello world!".mysubstring(3);//"lo world!" "Hello world!".mysubstring(3,7);//"lo w"
Méthode 2 : Convertir la chaîne en tableau et retirer la partie requise :
String.prototype.mysubstring=function(beginIndex,endIndex){ var str=this, strArr=str.split(""); if(!endIndex){ endIndex=str.length; } return strArr.slice(beginIndex,endIndex).join(""); } //test console.log("Hello world!".mysubstring(3));//"lo world!" console.log("Hello world!".mysubstring(3,7));//"lo w"
Méthode 3 : retirez les parties de tête et de queue, puis utilisez le remplacement pour supprimer les pièces en excès. Elle convient aux situations où BeginIndex est petit et String length-endIndex est petit :
String.prototype.mysubstring=function(beginIndex,endIndex){ var str=this, beginArr=[], endArr=[]; if(!endIndex){ endIndex=str.length; } for(var i=0;i<beginIndex;i++){ beginArr.push(str.charAt(i)); } for(var i=endIndex;i<str.length;i++){ endArr.push(str.charAt(i)); } return str.replace(beginArr.join(""),"").replace(endArr.join(""),""); } //test console.log("Hello world!".mysubstring(3));//"lo world!" console.log("Hello world!".mysubstring(3,7));//"lo w"
Vous pouvez essayer les trois méthodes de sous-chaîne de chaîne ci-dessus et comparer quelle méthode est la plus pratique. J'espère que cet article sera utile à l'apprentissage de chacun.