訪問字串中指定位置的字元的方法
charAt()
:返回指定位置的字元charCodeAt()
:返回指定位置的字元的字元編碼- 通過方括號加字元索引。
注意:IE7以及更早的版本不支援
var str = 'abcd1234' console.log(str.charAt(2)) // 'c' console.log(str.charCodeAt(2)) // 99 console.log(str[2]) // 'c' 複製程式碼
拼接字串的方法
concat()
:專門用來拼接字串的方法,該方法可以接受任意多個引數,返回拼接得到的新字串- 通過加號操作符'+'
var str = 'ab' console.log(str.concat('123')) // 'ab123' console.log(str.concat('123', 'cd')) // 'ab123cd' console.log(str + '123') // 'ab123' console.log(str + '123' + 'cd') // 'ab123cd' 複製程式碼
擷取字串的方法
slice()
和substring()
,兩個方法的傳參都是索引值。注意:含頭不含尾
substr()
:傳參中的第一個引數和slice()
方法一樣,而第二個引數是要擷取字串的個數- 傳參中有負數的情況
slice()
:傳入的負值與字串的長度相加,傳參不合法(第二個引數大於第一個引數),返回空字串substring()
:將所有負值引數都轉換為0,傳參不合法(第二個引數大於第一個引數),會自動替換兩個引數的位置substr()
:將第一個傳入的負值與字串的長度相加,而第二個負值轉換為0
// Base var str = 'bcd1234efg' console.log(str.slice(0,3)); // 'bcd' 引數為起始位置和結束位置 console.log(str.slice(-3,-1)); // 'ef' 當出現負值時,兩個引數均為負值和字串長度相加 console.log(str.slice(-1,-3)); // '' 第二個引數小於第一個引數時,返回空 console.log(str.substr(2,2)); // 'd1' 第一個引數為起始位置,第二個引數為字串的個數 console.log(str.substr(-3,-2)); // '' 當引數為負數時,第一個引數加上字串的長度,第二個引數變為0 console.log(str.substring(3,5)); // '12' 引數為起始位置和結束位置 console.log(str.substring(-3,-2)); // '' 當引數為負數時,兩個引數都變成0 console.log(str.substring(3,-3)); // 'bcd' 當第二個引數小於第一個引數時,交換位置 // More var str1 = 'abcdefghijklmn' var len = str1.length // 14 console.log(str.slice(8, -9)) // 傳參不合法,返回空字串 '' // 上述程式碼等同於 (-9) + 14 = 5 console.log(str.slice(8, 5)) // 傳參不合法,返回空字串 '' console.log(str.substring(8, -9)) // 'abcdefgh' // 上述程式碼等同於 console.log(str.substring(8, 0)) // 'abcdefgh' 傳參不合法,替換兩引數的位置 // 上述程式碼再次等同於 console.log(str.substring(0, 8)) // 'abcdefgh' 複製程式碼
獲取字串中特定字元的位置的方法
indexOf()
和lastIndexOf()
與陣列的相似注意
- 前者從前往後搜尋,後者從後往前搜尋
- 第二個引數指定從字串的哪個位置開始搜尋
字串大小寫轉換
toLowerCase()
和toUpperCase()
是兩個經典的方法toLocaleLowerCase()
和toLocaleUpperCase()
是針對特定地區的
字串模式匹配
-
match()
- 接受一個正則作為引數,用來匹配一個字串,它的輸出結果在不是全域性匹配的情況下和
exec方法
的結果一致即一個陣列並帶有額外的屬性,如果採用全域性匹配,則不返回任何和其被匹配字串相關的資訊,只返回匹配的結果。 非全域性匹配
var reg2=/(\w)s(\w)/ var str2="ws1estqsa" var result=str2.match(reg2) console.log(result) // 結果如下,此時的str2.match(reg2) 和 reg2.exec(str2) 的結果是一樣的 複製程式碼
全域性匹配
var reg2=/(\w)s(\w)/g var str2="ws1estqsa" var result=str2.match(reg2) console.log(result) // 結果如下,此時的str2.match(reg2)是所有結果組成的陣列,而 reg2.exec(str2)是匹配到的n個陣列,其中每個陣列包括的詳細資訊和非全域性匹配的資訊一樣 複製程式碼
- 接受一個正則作為引數,用來匹配一個字串,它的輸出結果在不是全域性匹配的情況下和
-
search()
- 用來查詢第一次匹配的子字串的位置,如果找到就返回一個number型別的index值,否則返回-1,它返回的只是第一次匹配的位置。它接受一個正則或者子字串為引數
var str="hellO world" console.log(str.search('o')) // 7 console.log(str.search(/o/g)) // 7 console.log(str.search(/o/gi)) // 4 複製程式碼
- 用來查詢第一次匹配的子字串的位置,如果找到就返回一個number型別的index值,否則返回-1,它返回的只是第一次匹配的位置。它接受一個正則或者子字串為引數
-
replace()
- 用來將字串中的某些子串替換為需要的內容,接受兩個引數,第一個引數可以為正則或者子字串,表示匹配需要被替換的內容,第二個引數為被替換的新的子字串。如果宣告為全域性匹配則會替換所有結果,否則只替換第一個匹配到的結果
var str='hello world,hello test' console.log(str.replace('hello', 'hi')) // hi world,hello test console.log(str.replace(/hello/, 'hi')) // hi world,hello test console.log(str.replace(/hello/g,'hi')) // hi world,hi test 複製程式碼
- 用來將字串中的某些子串替換為需要的內容,接受兩個引數,第一個引數可以為正則或者子字串,表示匹配需要被替換的內容,第二個引數為被替換的新的子字串。如果宣告為全域性匹配則會替換所有結果,否則只替換第一個匹配到的結果
-
split()
- 用來將一個字串拆分成一個陣列,它接受一個正則或者子字元(串)作為引數,返回一個陣列,簡單情況下,我們不需要使用正則,只有在字串拆分規則不統一的情況下才需要使用正則
// Base var str='abcdef' var arr=str.split('') console.log(arr) // [a, b, c ,d, e, f] // More var str='how|old*are you' var arr=str.split(/\||\*|\s+/) console.log(arr) // [how, old, are, you] 複製程式碼
- 用來將一個字串拆分成一個陣列,它接受一個正則或者子字元(串)作為引數,返回一個陣列,簡單情況下,我們不需要使用正則,只有在字串拆分規則不統一的情況下才需要使用正則