javascript中字符串處理常用的方法匯總
前言
雖然 JavaScript 有很多用處,但是處理字符串是其中最流行的一個。下面讓我們深入地分析一下使用 JavaScript 操作字符串。
在 JavaScript 中, String 是對象。 String 對象并不是以字符數(shù)組的方式存儲的,所以我們必須使用內(nèi)建函數(shù)來操縱它們的值。這些內(nèi)建函數(shù)提供了不同的方法來訪問字符串變量的內(nèi)容。下面我們詳細看一下這些函數(shù)。
操作字符串的值是一般的開發(fā)人員必須面臨的家常便飯。操作字符串的具體方式有很多,比如說從一個字符串是提取出一部分內(nèi)容來,或者確定一個字符串是否包含一個特定的字符。
下面景天就 JavaScript 字符串處理相關函數(shù)做深入講述:
1.獲取字符串長度 length
var string = "to be or not to be";
var res = string.length
var res = string[-1]
console.log(res)
2.通過索引獲取元素 charAt 不支持負下標 第幾個位置的字符
var string = "to be or not to be"; var res = string.charAt(3) console.log(res)

也可以直接通過string[3]下標獲取
3.charCodeAt() 拿到字符串對應字母的ASCII的編碼


如果字符串中是中文,拿到的是Unicode碼


字符串進行加密的時候,中文不太好加密,我們可以通過Unicode碼進行數(shù)學運算,進行加密
通過String.fromCharCode(20013) 還原成中文



4.清除兩側(cè)的空白 trim()
var res = string.trim() console.log(string) console.log(res)


5.獲取首次出現(xiàn)的位置 indexOf
/*找不到返回-1*/
var string = "to be or not to be";
var res = string.indexOf("z")
console.log(res)

找不到返回-1

找到,返回索引下標


6.最后一次出現(xiàn)的位置 lastIndexOf
/*找不到返回-1*/
var res = string.lastIndexOf("zzz")
console.log(res);
找到第一個字母最后出現(xiàn)的下標


7.連接字符串concat
var res = string.concat("d:\\","python32\\","day42");
console.log(res);


8.截取字符串 slice 只能正向截取。沒有步長。加上也不報錯
/* string.slice(開始值,結束值) 字符串的切片 留頭舍尾 [支持逆向下標]*/ var string = "11122233e or not to be"; var res = string.slice(1,7); var res = string.slice(-5,-1); // to b // var res = string.slice(-5,-10); //截取不到返回空 console.log(res,"<==1==>")
截取,取頭舍尾,只能正向截取,逆向截取,獲取不到


不支持逆向截取


9.截取字符串 substr
/* string.substr(開始值,截取幾個) */ var string = "11122233e or not to be"; var res = string.substr(3,4) console.log(res,"<==2==>")

substring是從中截取一段字符串,在組成一個新的字符串

截取方式:顧頭不顧尾
str.substring(indexA, indexB)
以下標從零開始計數(shù);包含indexA,不包含indexB
如果inde新A與indexB相等,則返回一個空字符串

其中字符串中的空格也算是一個字符串。
當有一個參數(shù)時
str.substring(indexA)
當有一個參數(shù)時,就是從indexA往后所有的字符

如果第二參數(shù)是負數(shù),則從零開始計數(shù) 如果任一參數(shù)小于0或是NaN,它將被視為0。 如果indexStart大于indexEnd,那么效果和被交換一樣
str.substring(indexA, indexB)

includes()
ES6中引入的JavaScript include()方法確定字符串是否包含您傳遞給該方法的字符。如果字符串包含某些字符,則該方法將返回“ true”。
如果指定的字符串不包含您要查找的字符,則includes()將返回“ false”。
10.拆分字符串 split
var string = "11122233e or not to be";
var res = string.split(" ")
console.log(res,"<==3==>")
返回數(shù)組

11.大小寫 toUpperCase toLowerCase
var string = "11122233e Or noT tO be"; res = string.toUpperCase(); res = string.toLowerCase(); console.log(res,"<==4==>")
轉(zhuǎn)換成大寫


12.search 匹配第一次找到的索引位置,找不到返回-1 匹配字符串要帶上雙斜線
var string = "aaabbb oldaoy ccc" var res = string.search(/oldboy/) console.log(res,"<==5==>")
返回第一個字母出現(xiàn)的下標


13.match 返回匹配的數(shù)據(jù)
/* /正則表達式/修飾符 g:全局匹配 i:不區(qū)分大小寫 m:多行匹配 */
var string = "我的電話是 : 13838384388 你的電話是: 13854381438"
var res = string.match(/\d{11}/); // 匹配一個
var res = string.match(/\d{11}/g); // 匹配多個,(需要修飾符加上g)
console.log(res)
console.log(res[0])
console.log(res[1])
返回的是數(shù)組。不加g匹配第一個后,就不再匹配。res[1]沒匹配到,打印出undefined

加上g后,全量匹配,都可以匹配到


14.字符串替換 replace
/* replace默認只替換一次 */
var string = "to be or not to be";
var res = string.replace("to","two")
console.log(res,"<==6==>")
默認只替換一次,替換第一個


替換所有的方法
方法一:
function myreplace(string,a,b){
/*
找最后一個to,如果找不到返回-1
如果能找到就不停的進行替換,直到-1為止,循環(huán)終止;
*/
while(string.lastIndexOf(a) != -1){
console.log(1)
string = string.replace(a,b);
}
return string;
}
var string = "to be or not to be";
var res = myreplace(string,"to","two")
console.log(res) // two be or not two be
循環(huán)替換完成,1前面的2表示循環(huán)跑了2次

方法二,在要被替換的字符串后面加g,表示全量替換
var string = "to be or not to be"; var res = string.replace(/to/g,"two"); console.log(res)

總結
到此這篇關于javascript中字符串處理的文章就介紹到這了,更多相關js字符串處理方法內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
JS使用window.requestAnimationFrame()對列表切片進行渲染
這篇文章主要為大家介紹了JS使用requestAnimationFrame對列表切片進行渲染,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05
原生js實現(xiàn)省市區(qū)三級聯(lián)動代碼分享
這篇文章主要介紹了原生js實現(xiàn)省市區(qū)三級聯(lián)動功能以及代碼分享,對此有需要的朋友可以參考學習下。2018-02-02
javascript中創(chuàng)建對象的三種常用方法
在javascript中創(chuàng)建對象的三種方法,腳本之家以前發(fā)布過有簡單實例版的,大家可以參考下。2010-12-12
JavaScript操作 url 中 search 部分方法函數(shù)
這篇文章主要介紹了JavaScript操作 url 中 search 部分方法函數(shù)的相關資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-06-06

