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