JavaScript字符串常用的方法

字號:


    這篇文章主要介紹了JavaScript字符串常用的方法 的相關(guān)資料,需要的朋友可以參考下
    獲取類:
    1)動態(tài)方法:
    charAt : 獲取字符串指定位置上的字符。(參數(shù):一個,指定要獲取的字符位置)
    1,不接受負數(shù),如果為負數(shù),會返回一個空字符串。
    2,如果不給參數(shù),默認是獲取第0位置上的字符。
    3,只接收一個參數(shù)。
    charCodeAt : 獲取字符串中指定位置上字符的Unicode編碼(參數(shù): 一個,指定要獲取字符編碼的字符位置)
    1,任何字符都有一個唯一的字符編碼。
    2,只接收一個參數(shù)。
    常用:
    數(shù)字 : 48 ~ 57
    下劃線 : 95
    空格 : 32
    制表符 : 9
    小寫字母 :97 ~ 122
    大寫字母 : 65 ~ 90
    2)靜態(tài)方法:
    fromCharCode : 根據(jù)指定的字符編碼返回對應(yīng)的字符。(參數(shù): 任意多個)
    1,可以接收多個參數(shù)。
    2,寫法是固定的(靜態(tài)方法):String.fromCharCode(); //字符編碼有效范圍 : 0 ~ 65535 String是字符串的對象
    var str = '我是字符串';
    alert( str.charAt( ) ); //'' 如果本身長度只有,卻找str.charAt() 找不到也是空字符串'',~str.length-是合法范圍。
    alert( str.charAt( ) ); //'我' 默認不寫是,找到第一個字符
    alert( str.charAt() ); // '字'
    alert( ''.charAt( ) ); //
    alert( ''.charAt(,) ); //
    alert( str.charCodeAt( ) );// unicode編碼
    alert( ''.charCodeAt() ); //
    alert(String.fromCharCode( ,)); //'字味' 根據(jù)編碼轉(zhuǎn)換成字符(靜態(tài)方法)多個字符用 , 隔開
    查找類:
    indexOf : 查找指定的子字符串在字符串中第一次出現(xiàn)的位置。(第一個參數(shù),指定要查找的子字符串;第二個參數(shù)指定開始查找的位置。)
    1,從前往后查找,默認從第0位置開始。
    2,如果找到了,就返回第一次被查找到的位置,如果沒有找到,就返回 -1。
    3,如果第二個參數(shù)為負數(shù),默認當成0來處理
    lastIndexOf : 查找指定的子字符串在字符串中最后一次出現(xiàn)的位置。(第一個參數(shù),指定要查找的子字符串;第二個參數(shù)指定開始查找的位置。)
    1,從后往前查找,默認從第 length - 1 位置開始。
    2,如果找到了,就返回第一次被查找到的位置,如果沒有找到,就返回 -1。
    var str = 'www.baidu.com/';
    alert(str.indexOf('bai')); // 從左往右找找到一個就返回不會再往右找了
    alert(str.indexOf('m',)) // 從第位開始向右找
    alert(str.indexOf('X')) //- 不存在的話結(jié)果是 - 表示沒找到
    alert(str.lastIndexOf('ww')); //
    截取類:
    substring : 提取指定范圍的一段子字符串。(第一個參數(shù),指定要提取的開始位置;第二個參數(shù),指定要提取的結(jié)束位置。)
    1,提取范圍包括開始位置,但是不包括結(jié)束位置。
    2,可以省略第二個參數(shù),表示從開始位置提取到字符串結(jié)束
    3,在提取之前會先比較兩個參數(shù)的大小,然后按從小到大的順序調(diào)整參數(shù)位置,再提取。
    4,所有的非法參數(shù)都會自動轉(zhuǎn)化成0.
    5,如果不給參數(shù),默認直接返回整個字符串。
    slice : 提取指定范圍的一段子字符串。(第一個參數(shù),指定要提取的開始位置;第二個參數(shù),指定要提取的結(jié)束位置。)
    1,提取范圍包括開始位置,但是不包括結(jié)束位置。
    2,可以省略第二個參數(shù),表示從開始位置提取到字符串結(jié)束
    3,不會比較兩個參數(shù)的位置,更不會調(diào)整位置的位置
    4,參數(shù)可以是正數(shù),也可以是負數(shù),其它所有非法參數(shù)都會轉(zhuǎn)換成0。
    5,負數(shù)表示從字符串的后面往前數(shù)字符位置,最一個字符的位置是 -1。
    var str = '我是字符串';
    alert(str.substring()); //'我是字符串'
    alert(str.substring(-,)); //'我'
    alert(str.substring()); //字符串
    alert(str.substring(,)); //'我是' 與str.substring(,)是一樣的??梢詸z測兩個數(shù),大的往后仍,小的往前仍。負數(shù)當成來處理。
    alert(str.slice(,)); //空白 找不到,不交換位置
    alert(str.slice(-)); //'符串' 負數(shù)就是從后面倒著往前數(shù)
    比較類:
    alert(‘我'>'你'); //true 字符串比較就比較第一個字符對應(yīng)的Unicode值大小,后邊的就不比較了。
    其他類:
    alert(str.length); //獲取字符串長度
    split() //把字符串切成數(shù)組
    參數(shù): 一個 指定一個分割符用來分割字符串。
    1,如果不指定分割符,就不會分割,直接存入數(shù)組。
    2,以分割符為依據(jù),把分割符左右兩邊的值分別存入數(shù)組。
    3,分割符本身不會存入數(shù)組。
    4,分割符只能是字符串中存在的子字符串。
    5,在split看來,兩個字符之間必須依靠空字符串連接。
    6,當用空字符串去分割空字符串的時候,會得到一個空數(shù)組。
    var str = '';
    alert( typeof str ); //string
    alert( typeof str.split() ); //object
    alert( str.split().length ); //['']
    alert( str.split('') ); //['','']
    alert( str.split('a') ); //['']
    alert( str.split('') ); //['','']
    alert( str.split('').length ); //['','','','']
    alert( str.split('') ); //['','','','']
    //'' 由五個 '' 加 四個字符組成
    alert( str.split('') );//['','']
    alert( str.split('') ); //['','']
    alert( ''.split(' ').length ); //['']
    alert( ''.split('').length ); //[]
    //特例,只有這種情況下 split 才會返回空數(shù)組。
    trim() : 去除字符串首尾的所有空格。(字符串中間的空格會保留)。
    html5的新方法,低版本瀏覽器不支持。
    toUpperCase() : 把字符串全部轉(zhuǎn)換成大寫。(沒有參數(shù))
    toLowerCase() : 把字符串全部轉(zhuǎn)換成小寫。(沒有參數(shù))
    最后,所有的字符串方法,都不會修改字符串本身。
    javascript字符串連接類
    在我們寫前端的js時,經(jīng)常會出現(xiàn)將很多的字符串通過“+”拼接起來,然后掛載的某個DOM元素上。然而關(guān)于使用“+”來拼接字符串,在各瀏覽器下解析的效果,我就在此不做對比了,網(wǎng)上這類的對比很多。很多牛人都說通過使用js中的Array的join方法來拼接字符串效果很不錯。為此在項目中寫一個js類,用來統(tǒng)一處理字符串的拼接。
    代碼
    //自定義的一個字符串連接類,用于拼接字符串,比"+"要提升性能function StringBuffer()
    {
    this._strs = new Array();
    }StringBuffer.prototype.append = function(str)
    {
    this._strs.push(str);
    };StringBuffer.prototype.arrayToString = function()
    {
    return this._strs.join("");
    };
    而我們在使用該類時,可以直接通過如下方法:
    var strBuff=new StringBuffer();strBuff.append("hello,");strBuff.append("Welcome to Javascript!");alert(strBuff.arrayToString());