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

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

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

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

substring()

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

str.substring(indexStart[, indexEnd])

參數(shù)說明:

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

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

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() 方法返回一個字符串中從指定位置開始到指定字符數(shù)的字符。語法如下:

str.substr(start[, length])

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

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

上述代碼的 1 表示從第二個字符開始截取,4 表示截取的長度為 4 個字符。

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

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

slice()

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

str.slice(startIndex, endIndex)

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

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

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

方法補充

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

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ù)含義:(字符串,截取長度,是否增加...) 

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實現(xiàn)字符串截取的三個方法總結(jié)的文章就介紹到這了,更多相關(guān)JavaScript字符串截取內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

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

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

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

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

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

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

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

    ES6中的類(Class)示例詳解

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

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

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

    JS實現(xiàn)仿QQ聊天窗口抖動特效

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

    使用fileReader的一個坑及解決

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

    基于javascript實現(xiàn)listbox左右移動

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

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

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

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

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

最新評論

莆田市| 南华县| 张掖市| 潼南县| 平舆县| 平泉县| 施甸县| 木里| 怀远县| 临桂县| 石楼县| SHOW| 泰顺县| 丰镇市| 灌阳县| 静安区| 元氏县| 三原县| 繁峙县| 华阴市| 南江县| 高安市| 康定县| 青州市| 贺州市| 香港 | 嘉善县| 平安县| 师宗县| 三江| 会同县| 清流县| 柏乡县| 承德市| 河北区| 尼木县| 昌平区| 新邵县| 天峻县| 海阳市| 青川县|