国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

Harpsichord1207 / 2542人閱讀

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

原文鏈接

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

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

str.substring(start, end)

substring()是最常用到的字符串截取方法,它可以接收兩個(gè)參數(shù),參數(shù)不能為負(fù)值,分別是要截取的開始位置和結(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()方法非常類似,它傳入的兩個(gè)參數(shù)也分別對應(yīng)著開始位置和結(jié)束位置。而區(qū)別在于,slice()中的參數(shù)可以為負(fù)值,如果參數(shù)是負(fù)數(shù),則該參數(shù)規(guī)定的是從字符串的尾部開始算起的位置。比如說,-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)開始的指定數(shù)目的字符。其返回值為一個(gè)字符串,包含從 strstart(包括start所指的字符)處開始的length個(gè)字符。如果沒有指定length,那么返回的字符串包含從startstr的結(jié)尾的字符。另外如果start為負(fù)數(shù),則表示從字符串尾部開始算起。

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)長度較大的話,以實(shí)際截取的長度為準(zhǔn))
4、split()

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

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

limit是一個(gè)整數(shù),限定返回的分割片段數(shù)量。split方法仍然分割每一個(gè)匹配的separator,但是返回的數(shù)組只會截取最多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
二、查找類方法 1、indexOf()

str.indexOf(searchValue, fromIndex)

indexOf()用來檢索指定的字符串值在字符串中首次出現(xiàn)的位置。它可以接收兩個(gè)參數(shù),searchValue表示要查找的子字符串,fromIndex表示查找的開始位置,省略的話則從開始位置進(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è)索引位置開始搜尋子字符串;默認(rèn)為0。需要注意的是,includes()區(qū)分大小寫的。

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

str.lastIndexOf(searchValue, fromIndex)

lastIndexOf()語法與indexOf()類似,它返回的是一個(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á)式相匹配的子字符串。它會返回第一個(gè)匹配的子字符串的起始位置,如果沒有匹配的,則返回-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ù)中傳入的是子字符串或是沒有進(jìn)行全局匹配的正則表達(dá)式,那么match()方法會從開始位置執(zhí)行一次匹配,如果沒有匹配到結(jié)果,則返回null。否則則會返回一個(gè)數(shù)組,該數(shù)組的第0個(gè)元素存放的是匹配文本,除此之外,返回的數(shù)組還含有兩個(gè)對象屬性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()從開始位置進(jìn)行多次匹配,直到最后。如果沒有匹配到結(jié)果,則返回null。否則則會返回一個(gè)數(shù)組,數(shù)組中存放所有符合要求的子字符串,并且沒有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()方法用來進(jìn)行字符串替換操作,它可以接收兩個(gè)參數(shù),前者為被替換的子字符串(可以是正則),后者為用來替換的文本。

如果第一個(gè)參數(shù)傳入的是子字符串或是沒有進(jìn)行全局匹配的正則表達(dá)式,那么replace()方法將只進(jìn)行一次替換(即替換最前面的),返回經(jīng)過一次替換后的結(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()將會對符合條件的子字符串進(jìn)行多次替換,最后返回經(jīng)過多次替換的結(jié)果字符串。

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

replace(),這個(gè)方法挺有用。如果是在稍微擅長正則的情形下,用replace等方法,來截取字符串,也是一個(gè)挺不錯(cuò)的選擇;這對于某些場景下,可達(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()方法可以把字符串中的大寫字母轉(zhuǎn)換為小寫

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

str.toUpperCase()

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

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= "陳寅恪,魯迅,錢鐘書,胡適,王國維,梁啟超,吳宓,季羨林"
let arr= str.split(",")
console.log(arr) // ["陳寅恪", "魯迅", "錢鐘書", "胡適", "王國維", "梁啟超", "吳宓", "季羨林"]

二維數(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)方,依依林影萬鴉藏。
一生負(fù)氣成今日,四海無人對夕陽。
破碎山河迎勝利,殘馀歲月送凄涼。
松門松菊何年夢,且認(rèn)他鄉(xiāng)作故鄉(xiāng)。
`
console.log(str.arr("
", ","))
// [["渺渺鐘聲出遠(yuǎn)方", "依依林影萬鴉藏。"],
//  ["一生負(fù)氣成今日", "四海無人對夕陽。"],
//  ["破碎山河迎勝利", "殘馀歲月送凄涼。"],
//  ["松門松菊何年夢", "且認(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/81928.html

相關(guān)文章

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

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

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

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

    tolerious 評論0 收藏0
  • 極簡爬蟲攻防戰(zhàn)紀(jì)要

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

    elliott_hu 評論0 收藏0
  • 7月份前端資源分享

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

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

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

    clasnake 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<