成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

JavaScript 字符串實(shí)用常操紀(jì)要

Harpsichord1207 / 2617人閱讀

摘要:另外如果為負(fù)數(shù),則表示從字符串尾部開(kāi)始算起。將要搜尋的子字符串。從當(dāng)前字符串的哪個(gè)索引位置開(kāi)始搜尋子字符串默認(rèn)為。否則則會(huì)返回一個(gè)數(shù)組,數(shù)組中存放所有符合要求的子字符串,并且沒(méi)有和屬性。

原文鏈接

JavaScript 字符串用于存儲(chǔ)和處理文本。因此在編寫(xiě) JS 代碼之時(shí)她總?cè)缬半S形,在你處理用戶(hù)的輸入數(shù)據(jù)的時(shí)候,在讀取或設(shè)置 DOM 對(duì)象的屬性時(shí),在操作 Cookie 時(shí),在轉(zhuǎn)換各種不同 Date 時(shí),諸此等等,繁不能數(shù);而她那蠻多的 API 呵,總有些讓人不愿去記憶的沖動(dòng),既然用時(shí)常搜,倒不如爛筆頭一番,以作了結(jié),順道也體現(xiàn)下這博客存在的價(jià)值,由此就有了這篇紀(jì)要。

一、字符串截取 1、substring()

str.substring(start, end)

substring()是最常用到的字符串截取方法,它可以接收兩個(gè)參數(shù),參數(shù)不能為負(fù)值,分別是要截取的開(kāi)始位置和結(jié)束位置,并且返回一個(gè)新的字符串,其內(nèi)容是從start處到end-1處的所有字符。若結(jié)束參數(shù)end省略,則表示從start位置一直截取到最后。

let str = "www.jeffjade.com"
console.log(str.substring(0,3)) // www
console.log(str.substring(4))   // jeffjade.com
console.log(str.substring(-2))  // www.jeffjade.com (傳負(fù)值則視為0)
2、slice()

str.slice(start, end)

slice()方法與substring()方法非常類(lèi)似,它傳入的兩個(gè)參數(shù)也分別對(duì)應(yīng)著開(kāi)始位置和結(jié)束位置。而區(qū)別在于,slice()中的參數(shù)可以為負(fù)值,如果參數(shù)是負(fù)數(shù),則該參數(shù)規(guī)定的是從字符串的尾部開(kāi)始算起的位置。比如說(shuō),-1指字符串的最后一個(gè)字符。

let str = "www.jeffjade.com"
console.log(str.slice(0, 3))   // www
console.log(str.slice(-3, -1)) // co
console.log(str.slice(1, -1))  // www.jeffjade.co
console.log(str.slice(2, 1))   // "" (返回空字符串,start須小于end)
console.log(str.slice(-3, 0))  // "" (返回空字符串,start須小于end)
3、substr()

str.substr(start, length)

substr()方法可在字符串中抽取從start下標(biāo)開(kāi)始的指定數(shù)目的字符。其返回值為一個(gè)字符串,包含從 strstart(包括start所指的字符)處開(kāi)始的length個(gè)字符。如果沒(méi)有指定length,那么返回的字符串包含從startstr的結(jié)尾的字符。另外如果start為負(fù)數(shù),則表示從字符串尾部開(kāi)始算起。

let str = "www.jeffjade.com"
console.log(str.substr(1, 3))  // ww.
console.log(str.substr(0))     // www.jeffjade.com
console.log(str.substr(-3, 3)) // com
console.log(str.substr(-1, 5)) // m  (目標(biāo)長(zhǎng)度較大的話(huà),以實(shí)際截取的長(zhǎng)度為準(zhǔn))
4、split()

str.split([separator][, limit])

separator指定用來(lái)分割字符串的字符(串)。separator可以是一個(gè)字符串或正則表達(dá)式。如果忽略 separator,則返回整個(gè)字符串的數(shù)組形式。如果separator是一個(gè)空字符串,則str將會(huì)把原字符串中每個(gè)字符的數(shù)組形式返回。

limit是一個(gè)整數(shù),限定返回的分割片段數(shù)量。split方法仍然分割每一個(gè)匹配的separator,但是返回的數(shù)組只會(huì)截取最多limit個(gè)元素。

let str = "www.jeffjade.com"
console.log(str.split("."))          // ["www", "jeffjade", "com"]
console.log(str.split(".", 1))       // ["www"]
console.log(str.split(".").join("")) // wwwjeffjadecom
二、查找類(lèi)方法 1、indexOf()

str.indexOf(searchValue, fromIndex)

indexOf()用來(lái)檢索指定的字符串值在字符串中首次出現(xiàn)的位置。它可以接收兩個(gè)參數(shù),searchValue表示要查找的子字符串,fromIndex表示查找的開(kāi)始位置,省略的話(huà)則從開(kāi)始位置進(jìn)行檢索。

let str = "www.jeffjade.com"
console.log(str.indexOf("."))     // 3
console.log(str.indexOf(".", 1))  // 3
console.log(str.indexOf(".", 5))  // 12
console.log(str.indexOf(".", 13)) // -1
2、includes()(ES6)

includes()方法用于判斷一個(gè)字符串是否被包含在另一個(gè)字符串中,如果是返回true,否則返回false

str.includes(searchString[, position])

·searchString·將要搜尋的子字符串。position可選。從當(dāng)前字符串的哪個(gè)索引位置開(kāi)始搜尋子字符串;默認(rèn)為0。需要注意的是,includes()區(qū)分大小寫(xiě)的。

console.log("Blue Whale".includes("blue"));       // false
console.log("喬峰喬布斯喬幫主".includes("喬布斯")); // true
3、lastIndexOf()

str.lastIndexOf(searchValue, fromIndex)

lastIndexOf()語(yǔ)法與indexOf()類(lèi)似,它返回的是一個(gè)指定的子字符串值最后出現(xiàn)的位置,其檢索順序是從后向前。

let str = "www.jeffjade.com"
console.log(str.lastIndexOf("."))     // 12
console.log(str.lastIndexOf(".", 1))  // -1
console.log(str.lastIndexOf(".", 5))  // 3
console.log(str.lastIndexOf(".", 12)) // 12
4、search()

str.search(substr)
str.search(regexp)

search()方法用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串。它會(huì)返回第一個(gè)匹配的子字符串的起始位置,如果沒(méi)有匹配的,則返回-1。

let str = "www.jeffjade.com"
console.log(str.search("w"))    // 0
console.log(str.search(/j/g))   // 4
console.log(str.search(/./g))  // 3
5、match()

str.match(substr)
str.match(regexp)

match()方法可在字符串內(nèi)檢索指定的值,或找到一個(gè)或多個(gè)正則表達(dá)式的匹配。

如果參數(shù)中傳入的是子字符串或是沒(méi)有進(jìn)行全局匹配的正則表達(dá)式,那么match()方法會(huì)從開(kāi)始位置執(zhí)行一次匹配,如果沒(méi)有匹配到結(jié)果,則返回null。否則則會(huì)返回一個(gè)數(shù)組,該數(shù)組的第0個(gè)元素存放的是匹配文本,除此之外,返回的數(shù)組還含有兩個(gè)對(duì)象屬性indexinput,分別表示匹配文本的起始字符索引和str的引用(即原字符串)。

let str = "#1a2b3c4d5e#";
console.log(str.match("A")); // 返回 null
console.log(str.match("b")); // 返回 ["b", index: 4, input: "#1a2b3c4d5e#"]
console.log(str.match(/b/)); // 返回 ["b", index: 4, input: "#1a2b3c4d5e#"]

如果參數(shù)傳入的是具有全局匹配的正則表達(dá)式,那么match()從開(kāi)始位置進(jìn)行多次匹配,直到最后。如果沒(méi)有匹配到結(jié)果,則返回null。否則則會(huì)返回一個(gè)數(shù)組,數(shù)組中存放所有符合要求的子字符串,并且沒(méi)有indexinput屬性。

let str = "#1a2b3c4d5e#"
console.log(str.match(/h/g))  // 返回 null
console.log(str.match(/d/g)) // 返回 ["1", "2", "3", "4", "5"]
三、其他方法 1、replace()

str.replace(regexp/substr, replacement)

replace()方法用來(lái)進(jìn)行字符串替換操作,它可以接收兩個(gè)參數(shù),前者為被替換的子字符串(可以是正則),后者為用來(lái)替換的文本。

如果第一個(gè)參數(shù)傳入的是子字符串或是沒(méi)有進(jìn)行全局匹配的正則表達(dá)式,那么replace()方法將只進(jìn)行一次替換(即替換最前面的),返回經(jīng)過(guò)一次替換后的結(jié)果字符串。

let str = "www.jeffjade.com"
console.log(str.replace("w", "a")) // aww.jeffjade.com
console.log(str.replace(/w/, "A")) // Aww.jeffjade.com

如果第一個(gè)參數(shù)傳入的全局匹配的正則表達(dá)式,那么replace()將會(huì)對(duì)符合條件的子字符串進(jìn)行多次替換,最后返回經(jīng)過(guò)多次替換的結(jié)果字符串。

let str = "www.jeffjade.com"
console.log(str.replace(/w/g, "A"))   // AAA.jeffjade.com

replace(),這個(gè)方法挺有用。如果是在稍微擅長(zhǎng)正則的情形下,用replace等方法,來(lái)截取字符串,也是一個(gè)挺不錯(cuò)的選擇;這對(duì)于某些場(chǎng)景下,可達(dá)到事半功倍之效,如下示例:

let str = "jeff@nice&jade"
console.log(str.replace(/@[sS]*/g, ""))  // "jeff"
console.log(str.replace(/@[sS]*&/g, "")) // "jeffjade"
2、toLowerCase()

str.toLowerCase()

toLowerCase()方法可以把字符串中的大寫(xiě)字母轉(zhuǎn)換為小寫(xiě)

let str = "www.jeffjade.com"
console.log(str.toLowerCase())   // www.jeffjade.com
3、toUpperCase()

str.toUpperCase()

toUpperCase()方法可以把字符串中的小寫(xiě)字母轉(zhuǎn)換為大寫(xiě)

let str = "www.jeffjade.com"
console.log(str.toUpperCase())   // WWW.JEFFJADE.COM
四、組合用法 1、字符串反轉(zhuǎn)
String.prototype.reverse = function () {
    return this.split("").reverse().join("")
}
2、去除空白行
String.prototype.removeBlankLines = function () {
    return this.replace(/(
[s	]*
*
)/g, "
").replace(/^[

	]*|[

	]*$/g, "")
}
3、String轉(zhuǎn)化為數(shù)組

一維數(shù)組

let str= "陳寅恪,魯迅,錢(qián)鐘書(shū),胡適,王國(guó)維,梁?jiǎn)⒊?吳宓,季羨林"
let arr= str.split(",")
console.log(arr) // ["陳寅恪", "魯迅", "錢(qián)鐘書(shū)", "胡適", "王國(guó)維", "梁?jiǎn)⒊?, "吳宓", "季羨林"]

二維數(shù)組

String.prototype.removeBlankLines = function () {
  return this.replace(/(
[s	]*
*
)/g, "
").replace(/^[

	]*|[

	]*$/g, "")
}
String.prototype.arr = function(firstSplit, secondSplit){
  var contentStr = this.removeBlankLines(),
      contentStrArr = contentStr.split(firstSplit),
      resultArr = contentStrArr.map((element) => {
        return element.split(secondSplit)
      })
  return resultArr
}
var str = `
渺渺鐘聲出遠(yuǎn)方,依依林影萬(wàn)鴉藏。
一生負(fù)氣成今日,四海無(wú)人對(duì)夕陽(yáng)。
破碎山河迎勝利,殘馀歲月送凄涼。
松門(mén)松菊何年夢(mèng),且認(rèn)他鄉(xiāng)作故鄉(xiāng)。
`
console.log(str.arr("
", ","))
// [["渺渺鐘聲出遠(yuǎn)方", "依依林影萬(wàn)鴉藏。"],
//  ["一生負(fù)氣成今日", "四海無(wú)人對(duì)夕陽(yáng)。"],
//  ["破碎山河迎勝利", "殘馀歲月送凄涼。"],
//  ["松門(mén)松菊何年夢(mèng)", "且認(rèn)他鄉(xiāng)作故鄉(xiāng)。"]]
4、startsWith()
if (typeof String.prototype.startsWith != "function") {
  String.prototype.startsWith = function (prefix){
    return this.slice(0, prefix.length) === prefix
  }
}
5、endWith()
if (typeof String.prototype.endsWith != "function") {
  String.prototype.endsWith = function(suffix) {
    return this.indexOf(suffix, this.length - suffix.length) !== -1
  }
}

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/81928.html

相關(guān)文章

  • JavaScript中函數(shù)紀(jì)要(一)

    摘要:中函數(shù)是一等公民,所有的函數(shù)實(shí)際上是一個(gè)對(duì)象,與其他引用類(lèi)型一樣擁有著屬性和方法,也可以被外界或者自身調(diào)用,也可以像傳遞參數(shù)一樣將函數(shù)傳遞給另一個(gè)函數(shù)。中函數(shù)沒(méi)有重載的概念,當(dāng)定義兩個(gè)同名函數(shù)的時(shí)候,前一個(gè)函數(shù)會(huì)被覆蓋掉,舉個(gè)栗子。 JavaScript中函數(shù)是一等公民,所有的函數(shù)實(shí)際上是一個(gè)Function對(duì)象,與其他引用類(lèi)型一樣擁有著屬性和方法,也可以被外界或者自身調(diào)用,也可以像傳...

    plus2047 評(píng)論0 收藏0
  • JavaScript中函數(shù)紀(jì)要(二)

    摘要:和方法大作用致相同,不同的方法接受的參數(shù),必須要明確所有要處理的參數(shù),也就是說(shuō),參數(shù)必須要逐個(gè)列舉,而方法可以選擇數(shù)組作為參數(shù),因此可以在具體的環(huán)境中,看看是選擇還是方法。 在函數(shù)內(nèi)部有著一個(gè)名叫arguments的類(lèi)數(shù)組對(duì)象,內(nèi)部包含著傳入函數(shù)的所有參數(shù),在arguments對(duì)象中,有一個(gè)名叫callee的屬性,其作用可見(jiàn)下面這個(gè)階乘的栗子: function factorial(n...

    tolerious 評(píng)論0 收藏0
  • 極簡(jiǎn)爬蟲(chóng)攻防戰(zhàn)紀(jì)要

    摘要:極簡(jiǎn)爬蟲(chóng)攻防戰(zhàn)紀(jì)要爬蟲(chóng)是構(gòu)建搜索引擎的基礎(chǔ)負(fù)責(zé)抓取網(wǎng)頁(yè)信息并對(duì)網(wǎng)頁(yè)識(shí)別分類(lèi)及過(guò)濾。爬蟲(chóng)方終于鎖定了第一場(chǎng)戰(zhàn)役的勝局由于斷崖式技術(shù)的出現(xiàn),反爬方在瀏覽器識(shí)別戰(zhàn)役上望風(fēng)披靡。經(jīng)過(guò)反爬方的精心運(yùn)作,逐漸有效削弱了敵方的攻勢(shì)。 極簡(jiǎn)爬蟲(chóng)攻防戰(zhàn)紀(jì)要 ? ??爬蟲(chóng)是構(gòu)建搜索引擎的基礎(chǔ), 負(fù)責(zé)抓取網(wǎng)頁(yè)信息并對(duì)網(wǎng)頁(yè)識(shí)別、分類(lèi)及過(guò)濾。我們熟識(shí)的電商、搜索、新聞及各大門(mén)戶(hù)網(wǎng)站都有強(qiáng)大的爬蟲(chóng)集群在每...

    elliott_hu 評(píng)論0 收藏0
  • 7月份前端資源分享

    摘要:更多資源請(qǐng)文章轉(zhuǎn)自月份前端資源分享的作用數(shù)組元素隨機(jī)化排序算法實(shí)現(xiàn)學(xué)習(xí)筆記數(shù)組隨機(jī)排序個(gè)變態(tài)題解析上個(gè)變態(tài)題解析下中的數(shù)字前端開(kāi)發(fā)筆記本過(guò)目不忘正則表達(dá)式聊一聊前端存儲(chǔ)那些事兒一鍵分享到各種寫(xiě)給剛?cè)腴T(mén)的前端工程師的前后端交互指南物聯(lián)網(wǎng)世界的 更多資源請(qǐng)Star:https://github.com/maidishike... 文章轉(zhuǎn)自:https://github.com/jsfr...

    pingan8787 評(píng)論0 收藏0
  • PHPExcel初學(xué)紀(jì)要

    摘要:流程創(chuàng)建一個(gè)文件獲取當(dāng)前的活動(dòng)標(biāo)簽通過(guò)行列坐標(biāo)獲取單元格,并向其插入數(shù)據(jù)這里有種方式生成文件并輸入代碼預(yù)覽等價(jià)于除非是根目錄設(shè)置當(dāng)前腳本所在目錄實(shí)例化類(lèi)獲取當(dāng)前活動(dòng)標(biāo)簽填充數(shù)據(jù)方式一姓名性別年齡射可可男男男填充數(shù) 流程 創(chuàng)建一個(gè)excel文件 獲取當(dāng)前的活動(dòng)sheet標(biāo)簽 通過(guò)行列坐標(biāo)獲取單元格,并向其插入數(shù)據(jù)(這里有2種方式) 生成文件并輸入showImg(https://seg...

    clasnake 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<