3種js實(shí)現(xiàn)string的substring方法
最近遇到一個(gè)題目,“如何利用javascript實(shí)現(xiàn)string的substring方法?”我目前想到的有以下三種方案:
方法一:用charAt取出截取部分:
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"
方法二:把字符串轉(zhuǎn)換成數(shù)組然后取出需要部分:
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"
方法三:取出頭尾部分,然后用replace去掉多余部分,適用于beginIndex較小,字符串長度-endIndex較小的情況:
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"
以上3種js實(shí)現(xiàn)string的substring方法大家都可以嘗試一下,比較一下哪種方法更方便,希望本文對(duì)大家的學(xué)習(xí)有所幫助。
- 深入淺析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
- javascript中substring()、substr()、slice()的區(qū)別
- javascript中slice(),splice(),split(),substring(),substr()使用方法
- js中substring和substr的定義和用法
- JavaScript截取字符串的Slice、Substring、Substr函數(shù)詳解和比較
- Js中的substring,substr與C#中的Substring比較
- js中substr,substring,indexOf,lastIndexOf的用法小結(jié)
- JS中substring與substr的用法
相關(guān)文章
JS及JQuery對(duì)Html內(nèi)容編碼,Html轉(zhuǎn)義
本文主要介紹了JS及JQuery對(duì)Html內(nèi)容編碼,Html轉(zhuǎn)義的方法。具有很好的參考價(jià)值,下面跟著小編一起來看下吧2017-02-02深入理解JavaScript系列(10) JavaScript核心(晉級(jí)高手必讀篇)
本篇是ECMA-262-3 in detail系列的一個(gè)概述(本人后續(xù)會(huì)翻譯整理這些文章到本系列(第11-19章)。每個(gè)章節(jié)都有一個(gè)更詳細(xì)的內(nèi)容鏈接,你可以繼續(xù)讀一下每個(gè)章節(jié)對(duì)應(yīng)的詳細(xì)內(nèi)容鏈接進(jìn)行更深入的了解2012-01-01easyui關(guān)于validatebox實(shí)現(xiàn)多重規(guī)則驗(yàn)證的方法(必看)
下面小編就為大家?guī)硪黄猠asyui關(guān)于validatebox實(shí)現(xiàn)多重規(guī)則驗(yàn)證的方法(必看)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04比JSON.stringify快兩倍的fast-json-stringify性能對(duì)比分析
這篇文章主要為大家介紹了比JSON.stringify快兩倍的fast-json-stringify性能對(duì)比分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12微信小程序?qū)W習(xí)筆記之獲取位置信息操作圖文詳解
這篇文章主要介紹了微信小程序?qū)W習(xí)筆記之獲取位置信息操作,結(jié)合實(shí)例形式分析了微信小程序獲取位置信息的原理、步驟及相關(guān)操作注意事項(xiàng),并結(jié)合圖文形式予以說明,需要的朋友可以參考下2019-03-03

JavaScript使用IEEE 標(biāo)準(zhǔn)進(jìn)行二進(jìn)制浮點(diǎn)運(yùn)算產(chǎn)生莫名錯(cuò)誤的解決方法