最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JavaScript實(shí)現(xiàn)字符串截取的三個(gè)方法總結(jié)

 更新時(shí)間:2023年02月27日 16:09:39   作者:天行無(wú)忌  
在?JavaScript?中,可以使用?substr()、slice()?和?substring()?方法截取字符串。這篇文章就來通過一些示例和大家聊聊這些方法的具體操作,需要的可以參考一下

在 JavaScript 中,可以使用 substr()、slice()substring() 方法截取字符串。

substring()

substring() 方法返回一個(gè)字符串在開始索引到結(jié)束索引之間的一個(gè)子集,或從開始索引直到字符串的末尾的一個(gè)子集。語(yǔ)法如下:

str.substring(indexStart[, indexEnd])

參數(shù)說明:

  • indexStart:需要截取的第一個(gè)字符的索引,該索引位置的字符作為返回的字符串的首字母。
  • indexEnd:可選。一個(gè) 0 到字符串長(zhǎng)度之間的整數(shù),以該數(shù)字為索引的字符不包含在截取的字符串內(nèi)。

如果 startIndex 大于 endIndex,則會(huì)交換它們的位置。來看一段示例代碼:

let str = "深耕WEB開發(fā)10+年,擁有一顆工匠的心";

console.log(str.substring(7)); // 10+年,擁有一顆工匠的心
console.log(str.substring(0, 5)); // 深耕WEB
console.log(str.substring(7, 5)); // 開發(fā)
console.log(str.substring(5, 5)); // 空

substr()

substr() 方法返回一個(gè)字符串中從指定位置開始到指定字符數(shù)的字符。語(yǔ)法如下:

str.substr(start[, length])

第一個(gè)參數(shù)是截取開始的位置,第二個(gè)參數(shù)是截取的長(zhǎng)度。如下代碼:

let str = "深耕WEB開發(fā)10+年,擁有一顆工匠的心";
let result = str.substr(1, 4);
console.log(result); // 耕WEB

上述代碼的 1 表示從第二個(gè)字符開始截取,4 表示截取的長(zhǎng)度為 4 個(gè)字符。

substr() 方法在截取字符串時(shí)是基于字符位置的,如果截取長(zhǎng)度超過了字符串的長(zhǎng)度,它會(huì)一直截取到字符串的末尾。如果第一個(gè)參數(shù)是負(fù)數(shù),則從字符串的末尾開始計(jì)數(shù)。

如果可以的話,建議使用 substring() 來取代 substr()。

slice()

slice() 方法提取某個(gè)字符串的一部分,并返回一個(gè)新的字符串,且不會(huì)改動(dòng)原字符串,與 substring() 方法類似。語(yǔ)法如下:

str.slice(startIndex, endIndex)

其中,startIndex 表示要截取的子字符串的起始位置(包含該位置),endIndex 表示要截取的子字符串的結(jié)束位置(不包含該位置)。如果只傳入 startIndex,則會(huì)從該位置一直截取到字符串末尾。如果 startIndex 大于 endIndex,則會(huì)返回空字符串。例如:

let str = "深耕WEB開發(fā)10+年,擁有一顆工匠的心";

console.log(str.slice(7)); // 10+年,擁有一顆工匠的心
console.log(str.slice(0, 5)); // 深耕WEB
console.log(str.slice(7, 5)); // ""
console.log(str.slice(5, 5)); // ""

substring()和substr()的區(qū)別

substring()substr() 都是截取字符串的方法,但它們有以下區(qū)別:

  • 參數(shù)不同substring() 方法的第一個(gè)參數(shù)是起始位置,第二個(gè)參數(shù)是終止位置(不包括該位置的字符);substr() 方法的第一個(gè)參數(shù)是起始位置,第二個(gè)參數(shù)是截取的長(zhǎng)度。
  • 負(fù)數(shù)處理不同substring() 方法不接受負(fù)數(shù)參數(shù),如果傳入負(fù)數(shù),會(huì)被自動(dòng)轉(zhuǎn)換為0;substr() 方法可以接受負(fù)數(shù)參數(shù),表示倒數(shù)計(jì)數(shù)。
  • 返回值不同substring() 方法返回從起始位置到終止位置之間的字符;substr()方法返回從起始位置開始指定長(zhǎng)度的字符。

ES6中新增了 slice() 方法,但它和 substring() 方法非常相似,也是接受起始位置和終止位置作為參數(shù),不同之處是slice() 方法可以接受負(fù)數(shù)參數(shù),表示從字符串末尾開始計(jì)數(shù)。substr() 雖然沒有被完全遺棄,但還是建議使用 substring() 來取代 substr()。

方法補(bǔ)充

除了上述的方法,小編還為大家整理了其他的實(shí)現(xiàn)方法,希望對(duì)大家有所幫助

Javascript截取字符串中包含中文的方法

第一種方法:

String.prototype.sub=function(n){ 
  var r=/[^\x00-\xff]/g; 
  if(this.replace(r,"mm").length<=n){return this;} 
  var m=Math.floor(n/2); 
  for(var i=m;i<this.length;i++){ 
    if(this.substr(0,i).replace(r,"mm").length>=n){ 
      return this.substr(0,i)+"..."; 
    } 
  } 
  return this; 
} 

第二種方法:

截取字符串 包含中文處理,參數(shù)含義:(字符串,截取長(zhǎng)度,是否增加...) 

function subString(str, len, hasDot){ 
  var newLength=0; 
  var newStr=""; 
  var chineseRegex=/[^\x00-\xff]/g; 
  var singleChar=''; 
  var strLength=str.replace(chineseRegex,'**').length; 
  for(var i=0;i < strLength;i++){ 
  singleChar=str.charAt(i).toString(); 
  if(singleChar.match(chineseRegex) != null){ 
    newLength+=2; 
  }else{ 
    newLength++; 
  } 
  if(newLength>len){ 
    break; 
  } 
  newStr+=singleChar; 
  } 
   
  if(hasDot && strLength>len){ 
    newStr+='...'; 
  } 
  return newStr; 
} 

到此這篇關(guān)于JavaScript實(shí)現(xiàn)字符串截取的三個(gè)方法總結(jié)的文章就介紹到這了,更多相關(guān)JavaScript字符串截取內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • uniapp實(shí)現(xiàn)全局變量的幾種方式總結(jié)

    uniapp實(shí)現(xiàn)全局變量的幾種方式總結(jié)

    這里說全局變量,著重指的是能夠全局動(dòng)態(tài)響應(yīng)的情況,下面這篇文章主要給大家介紹了關(guān)于uniapp實(shí)現(xiàn)全局變量的幾種方式,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • JavaScript中Null與Undefined的區(qū)別解析

    JavaScript中Null與Undefined的區(qū)別解析

    這篇文章主要介紹了JavaScript中Null與Undefined的區(qū)別解析,本文給出了多個(gè)代碼實(shí)例講解它們之間的區(qū)別,需要的朋友可以參考下
    2015-06-06
  • JS實(shí)現(xiàn)在文本指定位置插入內(nèi)容的簡(jiǎn)單示例

    JS實(shí)現(xiàn)在文本指定位置插入內(nèi)容的簡(jiǎn)單示例

    下面小編就為大家分享一篇JS實(shí)現(xiàn)在文本指定位置插入內(nèi)容的簡(jiǎn)單示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • ES6中的類(Class)示例詳解

    ES6中的類(Class)示例詳解

    這篇文章主要給大家介紹了關(guān)于ES6中類(Class)的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 循環(huán) vs 遞歸淺談

    循環(huán) vs 遞歸淺談

    本文代碼使用 JavaScript。 一些同學(xué)對(duì)遞歸的理解還停留在“是一種求階乘比循環(huán)低效的方法”。但其實(shí)遞歸和循環(huán)處理的問題是不同。拿“遍歷數(shù)組”這個(gè)問題來說:循環(huán)適合同一維度(單層長(zhǎng)度不限)上的遍歷,而遞歸則適合跨維度(層數(shù)不限)的遍歷。
    2013-02-02
  • JS實(shí)現(xiàn)仿QQ聊天窗口抖動(dòng)特效

    JS實(shí)現(xiàn)仿QQ聊天窗口抖動(dòng)特效

    本文給大家分享的是類似QQ窗口的抖動(dòng)效果,只是覺得好玩,沒什么技術(shù)含量,推薦給大家,有需要的小伙伴可以參考下。
    2015-05-05
  • 使用fileReader的一個(gè)坑及解決

    使用fileReader的一個(gè)坑及解決

    這篇文章主要介紹了使用fileReader的一個(gè)坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 基于javascript實(shí)現(xiàn)listbox左右移動(dòng)

    基于javascript實(shí)現(xiàn)listbox左右移動(dòng)

    這篇文章主要介紹了基于javascript實(shí)現(xiàn)listbox左右移動(dòng)的相關(guān)資料,以一個(gè)完整的實(shí)例代碼分析了js實(shí)現(xiàn)listbox左右移動(dòng)的相關(guān)技巧,感興趣的小伙伴們可以參考一下
    2016-01-01
  • p5.js臨摹動(dòng)態(tài)圖形的方法

    p5.js臨摹動(dòng)態(tài)圖形的方法

    這篇文章主要為大家詳細(xì)介紹了p5.js臨摹動(dòng)態(tài)圖形的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • JavaScript變速動(dòng)畫函數(shù)封裝添加任意多個(gè)屬性

    JavaScript變速動(dòng)畫函數(shù)封裝添加任意多個(gè)屬性

    這篇文章主要介紹了JavaScript變速動(dòng)畫函數(shù)封裝添加任意多個(gè)屬性 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-04-04

最新評(píng)論

曲阳县| 泸溪县| 大新县| 信阳市| 台东市| 永平县| 永登县| 犍为县| 福清市| 专栏| 德江县| 新安县| 同心县| 康平县| 金川县| 洛扎县| 昌平区| 河曲县| 乌审旗| 儋州市| 保定市| 靖州| 龙门县| 郸城县| 吴江市| 通许县| 岗巴县| 丹东市| 耒阳市| 蛟河市| 汤阴县| 会东县| 安西县| 三门县| 望都县| 彩票| 霞浦县| 金阳县| 吉隆县| 彭水| 汾阳市|