您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“如何使用Javascript的字符串”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“如何使用Javascript的字符串”吧!
字符串長(zhǎng)度:length
獲取字符串指定位置的值
charAt()
charCodeAt()
字符串檢查是否包含某個(gè)值
indexOf()
lastIndexOf()
includes()
startsWith()
endsWith()
字符串拼接
concat
'+'號(hào)
字符串分割成數(shù)組
split()
截取字符串
slice()
substr()
substring()
字符串大小寫轉(zhuǎn)換
toLowerCase()
toUpperCase()
字符串模式匹配
replace()
replaceAll()
match()
search()
移除字符串空白符
trim()
trimStart()
trimEnd()
其他類型轉(zhuǎn)為字符串
toString()
String()
隱式轉(zhuǎn)換
JSON.stringify()
重復(fù)一個(gè)字符串
repeat()
補(bǔ)齊字符串長(zhǎng)度
padStart()
padEnd()
parseFloat()
JSON.parse()
Number()
總結(jié)
返回值
str.charAt(2) // c str[2] // c str.charAt(30) // '' str[30] // undefinde
當(dāng)index的取值不在str的長(zhǎng)度范圍內(nèi)時(shí),str[index]會(huì)返回undefined,而charAt(index)會(huì)返回空字符串;
注意:str[index]不兼容ie6-ie8,charAt(index)可以兼容。
獲取字符串索引位置字符的 Unicode 值
str.charAt(2) // c str[2] // c str.charAt(30) // '' str[30] // undefinde
查找某個(gè)字符,有則返回第一次匹配到的索引位置,否則返回-1,正序查找:
str.indexOf('e') // 4 索引位置 str.indexOf('e',5) // -1
語法:string.indexOf(value,startIndex)
value:必需,規(guī)定需檢索的字符串值;
startIndex:可選的整數(shù)參數(shù), 默認(rèn)0,正序查找開始檢索的位置。它的合法取值是 0 到 string.length - 1
查找某個(gè)字符,有則返回最后一次匹配到的位置,否則返回-1,與indexOf相反,倒敘查找:
str.lastIndexOf('e') // 10 str.lastIndexOf('e',8) // 倒敘查找0-8索引之內(nèi)的e // 4 str.lastIndexOf('e',3) // 倒敘查找0-3索引之內(nèi)的e // -1
語法:string.lastIndexOf(value,startIndex)
value:必需,規(guī)定需檢索的字符串值;
startIndex:可選的整數(shù)參數(shù), 默認(rèn)string.length - 1,倒敘查找開始索引位置。它的合法取值是 0 到 string.length - 1
判斷字符串是否包含指定的子字符串。如果找到匹配的字符串則返回 true,否則返回 false。
str.includes('e') // true str.includes('e',11) // false
語法:string.includes(value, startIndex)
value:必需,規(guī)定需檢索的字符串值;
startIndex:可選的整數(shù)參數(shù), 默認(rèn)0,查找開始索引位置。它的合法取值是 0 到 string.length - 1
該方法用于檢測(cè)字符串是否以指定的子字符串開始。如果是以指定的子字符串開頭返回 true,否則 false。
str.startsWith('ab') // true str.startsWith('ef') // false str.startsWith('ef',4) // true
語法:string.startsWith(value, startIndex)
value:必需,規(guī)定需檢索的字符串值;
startIndex:可選的整數(shù)參數(shù), 默認(rèn)0,查找開始索引位置。它的合法取值是 0 到 string.length - 1
該方法用來判斷當(dāng)前字符串是否是以指定的子字符串結(jié)尾。如果傳入的子字符串在搜索字符串的末尾則返回 true,否則將返回 false。
str.endsWith('ba') // true str.endsWith('ef') // false str.endsWith('ef',6) // true
語法:string.endsWith(value, length)
value:必需,規(guī)定需檢索的字符串值;
length:子字符串的長(zhǎng)度,默認(rèn)為原始字符串長(zhǎng)度string.length
連接兩個(gè)或多個(gè)字符串。該方法不會(huì)改變?cè)凶址?,?huì)返回連接兩個(gè)或多個(gè)字符串的新字符串。
let a = 'asdf' let b = '123' let s = a.concat(b) let s2 = a + b console(a,b,s,s2) // 'asdf' '123' 'asdf123' 'asdf123'
語法:string.concat(string1, string2, ..., stringX)
在字符串string后面拼接string1、string2…stringX
如上contact示例,一般使用此方法,簡(jiǎn)單高效
把一個(gè)字符串分割成字符串?dāng)?shù)組。該方法不會(huì)改變?cè)甲址?/p>
str.split('') // ["a", "b", "c", "d", "e", "f", "g", "h", "g", "f", "e", "d", "c", "b", "a"] str.split('',4) // ["a", "b", "c", "d"] str.split('',20) // ["a", "b", "c", "d", "e", "f", "g", "h", "g", "f", "e", "d", "c", "b", "a"]
語法:string.split(separator,limit)
separator:必需。字符串或正則表達(dá)式,從該參數(shù)指定的地方分割 string
limit:可選。該參數(shù)可指定返回的數(shù)組的最大長(zhǎng)度。如果設(shè)置了該參數(shù),返回的子串不會(huì)多于這個(gè)參數(shù)指定的數(shù)組。如果沒有設(shè)置該參數(shù),整個(gè)字符串都會(huì)被分割,不考慮它的長(zhǎng)度。
提取字符串的某個(gè)部分,并以新的字符串返回被提取的部分。
str.slice(1,3) // bc str.slice(-3,-1) // cb
語法: string.slice(start,end)
start:必須。 要截取的片斷的起始索引,第一個(gè)字符位置為 0。如果為負(fù)數(shù),則從尾部開始截?。?/p>
end:可選。 要截取的片段結(jié)尾的下標(biāo)。若未指定此參數(shù),則要提取的子串包括 start 到原字符串結(jié)尾的字符串。如果該參數(shù)是負(fù)數(shù),那么它規(guī)定的是從字符串的尾部開始算起的位置。
如果start是負(fù)數(shù),那么end應(yīng)當(dāng)大于start且小于0
該方法返回的子字符串包括start處的字符但不包括end處的字符
用于在字符串中抽取從開始下標(biāo)開始的指定數(shù)目的字符。
str.substr(5) // fghgfedcba str.substr(5,3) // fgh
語法: string.substr(start,length)
start:必需。要抽取的子串的起始下標(biāo)。必須是數(shù)值。如果是負(fù)數(shù),那么該參數(shù)聲明從字符串的尾部開始算起的位置,可以為負(fù)數(shù),表示從最后開始。
length:可選。子串中的字符數(shù)。必須是數(shù)值。如果省略了該參數(shù),那么返回從 string 的開始位置到結(jié)尾的字串。
用于提取字符串中介于兩個(gè)指定下標(biāo)之間的字符
str.substring(3,5) // de str.substring(5,3) // de
語法:string.substring(start, end)
start:必需。一個(gè)非負(fù)的整數(shù),規(guī)定要提取的子串的第一個(gè)字符在 string 中的位置。
end:可選。一個(gè)非負(fù)的整數(shù),比要提取的子串的最后一個(gè)字符在 string 中的位置多 1。如果省略該參數(shù),那么返回的子串會(huì)一直到字符串的結(jié)尾。
注意:
start和end均不接受負(fù)數(shù)返回的子串包含start不包含end如果start=end,返回空串如果start < end,該方法會(huì)自動(dòng)交換這兩個(gè)參數(shù)
字符串轉(zhuǎn)換為小寫。
let t = 'AXC' t.toLowerCase() // axc
字符串轉(zhuǎn)換為大寫。
str.toUpperCase() // ABCDEFGHGFEDCBA
用于在字符串中用一些字符替換另一些字符,或替換一個(gè)與正則表達(dá)式匹配的子串。
str.replace('b',11) // a11cdefghgfedcba str.replace(/b/g,11) // a11cdefghgfedc11a g:表示全局,沒有則默認(rèn)替換第一個(gè),i:表示忽略大小寫
語法:string.replace(oldValue, newValue)
oldValue:必需。規(guī)定子字符串或要替換的模式的 RegExp 對(duì)象。如果該值是一個(gè)字符串,則將它作為要檢索的直接量文本模式,而不是首先被轉(zhuǎn)換為 RegExp 對(duì)象。
newValue:必需。一個(gè)字符串值。規(guī)定了替換文本或生成替換文本的函數(shù)。
replace()方法的全局替換:
str.replace(/b/g,11)
等價(jià)于 str.replaceAll('b',11)
用于在字符串內(nèi)檢索指定的值,或找到一個(gè)或多個(gè)正則表達(dá)式的匹配。該方法類似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
str.match('ghg') // ["ghg", index: 6, input: "abcdefghgfedcba", groups: undefined] str.match(/ghg/g) // ["ghg"] str.match(/a/g) // ["a", "a"] str.match(/t/g) // null
語法: string.match(regexp)
regexp 是必需的,規(guī)定要匹配的模式的 RegExp 對(duì)象。
該方法返回存放匹配結(jié)果的數(shù)組。該數(shù)組的內(nèi)容依賴于 regexp 是否具有全局標(biāo)志 g。
用于檢索字符串中指定的子字符串,或檢索與正則表達(dá)式相匹配的子字符串。
str.search(/ghg/) // 6 str.search(/a/) // 0 str.search(/a/g) // 0 str.search(/t/g) // -1
語法: string.search(value)
regex 可以是需要在 string 中檢索的子串,也可以是需要檢索的 RegExp 對(duì)象。
注意:
要執(zhí)行忽略大小寫的檢索,請(qǐng)追加標(biāo)志 i。該方法不執(zhí)行全局匹配,它將忽略標(biāo)志 g,也就是只會(huì)返回第一次匹配成功的結(jié)果。如果沒有找到任何匹配的子串,則返回 -1。返回 str 中第一個(gè)與 regexp 相匹配的子串的起始位置。
用于移除字符串首尾空白符,該方法不會(huì)改變?cè)甲址?。該方法不適用于null、undefined、Number類型
let s = ' 123 ' s.trim() // '123'
用于移除字符串開頭空白符,該方法不會(huì)改變?cè)甲址?/p>
let s = ' 123 ' s.trimStart() // '123 '
用于移除字符串結(jié)尾空白符,該方法不會(huì)改變?cè)甲址?/p>
let s = ' 123 ' s.trimEnd() // ' 123'
適用于:Boolean
,Array
,Number
let arr = [1,2,3] let num = 123 let bool = true let obj = {a:1} arr.toString() // '1,2,3' num.toString() // '123' bool.toString() // 'true' obj.toString() // '[object Object]'
語法:notStr.toString()
適用于:Boolean
,Array
,Number
let arr = [1,2,3] let num = 123 let bool = true let obj = {a:1} String(arr) // '1,2,3' String(num) // '123' String(bool) // 'true' String(obj) // '[object Object]'
語法:String(notStr)
非字符串+字符串=字符串,先將原數(shù)據(jù)類型隱式轉(zhuǎn)換為字符串,然后再加上新字符串。
適用于:Boolean
,Array
,Number
,null
let arr = [1,2,3] let num = 123 let bool = true let obj = {a:1} arr+'' // '1,2,3' arr+'t' // '1,2,3t' num+'t' // '123t' bool+'' // 'true' obj+'' // '[object Object]' null+'' // 'null'
適用于:Boolean
,Array
,Number
,null
,undefined
let arr = [1,2,3] let num = 123 let bool = true let obj = {a:1} JSON.stringify(arr) // '[1,2,3]' 保留了中括號(hào)[] JSON.stringify(num) // '123' JSON.stringify(bool) // 'true' JSON.stringify(obj) // '{"a":1}' JSON.stringify(null) // 'null' JSON.stringify(NaN) // 'null'
還原使用JSON.parse()
let arr = [1,2,3] let num = 123 let bool = true let obj = {a:1} JSON.parse(JSON.stringify(arr)) // [1,2,3] JSON.parse(JSON.stringify(num)) // 123 JSON.parse(JSON.stringify(bool)) // true JSON.parse(JSON.stringify(obj)) // {a:1} JSON.parse(JSON.stringify(null)) // null JSON.parse(JSON.stringify(NaN)) // null
返回一個(gè)新字符串,表示將原字符串重復(fù)n次
'cv'.repeat(3) // 'cvcvcv' 'cv'.repeat(0) // '' 'cv'.repeat(2.6) // 'cvcv' 'cv'.repeat('3') // 'cvcvcv' 'cv'.repeat('3a') // ''
語法:string.repeat(number)
number:重復(fù)次數(shù)
注意:
為0,返回空子串向下取整負(fù)數(shù)或Infinity會(huì)報(bào)錯(cuò)0 到-1 之間的負(fù)小數(shù)或NaN,等同于0若number為字符串,會(huì)先轉(zhuǎn)為數(shù)字類型 數(shù)字類型字符串,會(huì)自動(dòng)轉(zhuǎn)為對(duì)應(yīng)的數(shù)字,再repeat非數(shù)字類型的字符串,等同于0
頭部補(bǔ)全
let t = 'mosowe' t.padStart(1,'nb') // 'mosowe' t.padStart(10,'nb') // 'nbnbmosowe' t.padStart(10,'') // 'mosowe' t.padStart(10)// ' mosowe'
語法:string.padStart(length,str)
length:字符串補(bǔ)齊之后的長(zhǎng)度
str:用來補(bǔ)全的字符串
注意:
如果原字符串的長(zhǎng)度,等于或大于指定的最小長(zhǎng)度,則返回原字符串如果用來補(bǔ)全的字符串與原字符串,兩者的長(zhǎng)度之和超過了指定的最小長(zhǎng)度,則會(huì)截去超出位數(shù)的補(bǔ)全字符串如果省略第二個(gè)參數(shù),默認(rèn)使用空格補(bǔ)全長(zhǎng)度如果第二個(gè)參數(shù)為空字符串,則不會(huì)補(bǔ)全
末尾補(bǔ)全,參看padStart()
字符串轉(zhuǎn)為數(shù)字 parseInt()
parseInt("10") // 10 parseInt("10.11") // 10 parseInt("16",8) // 14 = 8+6, 轉(zhuǎn)為八進(jìn)制 parseInt("010") // 10,據(jù)說有的瀏覽器是8,但是我試了好幾款國(guó)內(nèi)瀏覽器,都是10, parseInt("") // NaN parseInt("unh") // NaN parseInt("123tt") // 123 parseInt("tt123") // NaN
語法:parseInt(string, radix)
string:必需。要被解析的字符串
radix:可選。表示要解析的數(shù)字的基數(shù)。該值介于 2 ~ 36 之間,默認(rèn)10。
轉(zhuǎn)為十進(jìn)制浮點(diǎn)數(shù)
parseFloat("10") // 10 parseFloat("10.11") // 10.11 parseFloat("10.11.11111") // 10.11 parseFloat("010") // 10 parseFloat("") // NaN parseFloat("unh") // NaN parseFloat("123tt") // 123 parseFloat("tt123") // NaN
語法:parseFloat(string)
JSON.parse("10") // 10 JSON.parse("10.11") // 10.11 JSON.parse("10.11.11111") // error JSON.parse("010") // error JSON.parse("") // error JSON.parse("unh") // error JSON.parse("123tt") // error JSON.parse("tt123") // error
語法:JSON.parse(string)
Number('') // 0 Number('10') // 10 Number('010') // 10 Number('2.3') // 2.3 Number('2.3.3') // NaN Number('2TT') // NaN Number('TT2') // NaN
語法:Number(string)
到此,相信大家對(duì)“如何使用Javascript的字符串”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。