1、字符串方法正則表達式
一、字符串轉換:
將一個值轉換成一個字符串有兩種方法,一是使用 toString() 方法,二是使用轉型函數 String()。
(1)、大多值都有toString()方法,null和undefined是沒有的。數組
(2)、對於字符串型的值也可使用toString()方法,它會返回該字符串的一個副本。函數
(3)、toString()方法能夠傳遞一個參數,表示數值的基數(進制)。編碼
var t = 8; t.toString(2); //1000
默認狀況下 參數是10。要說明的是對於非數值類型(boolean,string等)設置toString()的參數是無效的code
var t ="8"; t.toString(2); //8, 返回字符串的副本;
(4)、任何值均可以使用String()方法。它的過程是這樣的regexp
首先,若是值有toString()方法,那麼則使用該方法(無參數)。對象
其次,那就是該值沒有toString()方法,那就是 null 返回 "null",undefined返回"undefined";
字符串
var a=null; String(a); //"null"
二、字符串分割:
字符串分割,將一個字符串按照某種方式分割成字符串數組,使用 split(separator,howmany) 方法,
第一個參數必需,,爲字符串或正則表達式,從該參數指定的地方分割字符串;
第二個參數可選,可指定返回的數組的最大長度input
var myStr = "I,Love,You,Do,you,love,me"; var substrArray = myStr .split(","); // ["I", "Love", "You", "Do", "you", "love", "me"]; var arrayLimited = myStr .split(",", 3); // ["I", "Love", "You"];
三、獲取字符串長度
獲取字符串長度,直接使用 str.length 屬性string
var myStr = "I,Love,You,Do,you,love,me"; var myStrLength = myStr.length; //25
四、查詢子字符串
查詢子字符串,可使用 indexOf() 和 lastIndexOf() 方法
(1)indexOf():從字符串的第一個字符位置開始查找,找到後返回對應下標,找不到返回 -1 ;
var myStr = "I,Love,you,Do,you,love,me"; var index = myStr.indexOf("Love"); // 2 ,基於0開始,找不到返回-1,區分大小寫
(2)lastIndexOf():從字符串的末尾開始查找,找到最後出現指定字符串的位置後返回對應下標,找不到返回 -1 ;
var myStr = "I,Love,you,Do,you,love,me"; var index = myStr.lastIndexOf("you"); // 14 //區分大小寫
五、字符串替換
替換字符串,使用 strObj.replace(regexp/substr,replacement) 方法,
第一個參數必需,規定要匹配的正則對象,
第二個參數必需,規定了替換文本或生成替換文本的函數。
var myStr = "I,Love,you,Do,you,love,me"; var replacedStr = myStr.replace(/love/g,"hate");//"I,Love,you,Do,you,hate,me",全局匹配(g)
var myStr = "I,Love,you,Do,you,love,me"; var replacedStr = myStr.replace(/love/g,"hate");//"I,hate,you,Do,you,hate,me",忽略大小寫(i)
六、查找給定位置的字符或其字符編碼值
想要查找給定位置的字符,你可使用以下函數:
var myStr = "I,love,you,Do,you,love,me"; var theChar = myStr.charAt(8);// "o",一樣從0開始
一樣,它的一個兄弟函數就是查找對應位置的字符編碼值,如:
var myStr = "I,love,you,Do,you,love,me"; var theChar = myStr.charCodeAt(8); //111
七、字符串拼接
字符串鏈接操做能夠簡單到用一個加法運算符搞定,如:
var str1 = "I,love,you!"; var str2 = "Do,you,love,me?"; var str = str1 + str2 + "Yes!";//"I,love,you!Do,you,love,me?Yes!"
使用js自帶 strObj1.concat(strObj2) 方法也可實現
var str1 = "I,love,you!"; var str2 = "Do,you,love,me?"; var str = str1.concat(str2);//"I,love,you!Do,you,love,me?"
八、字符串切割和提取
有三種方法可實現,分別爲:
(1)、strObj.slice(satrt,end):第一個參數必需,要提取字符串的起始下標。若是爲負數的話,則該參數規定的是從字符串的尾部開始算起的位置。也就是說,-1 指字符串的最後一個字符,-2 指倒數第二個字符,以此類推,第二個參數可選,與strObj.substring()相似。
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.slice(1,5);//",lov"
(2)、strObj.substring(start,end):第一個參數必需,不能爲負數,提取字符串初始位置,第二個參數可選,strObj[end]不提取。
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.substring(1,5); //",lov";
(3)、strObj,substr(start,length):第一個參數必需,提取字符串的初始位置,第二個參數可選,表示提取字符串長度,不寫的話默認提取到字符串末尾。
var myStr = "I,love,you,Do,you,love,me"; var subStr = myStr.substr(1,5); //",love"
九、字符串大小寫轉換
經常使用的轉換爲大寫或者小寫字符串函數,以下:
var myStr = "I,love,you,Do,you,love,me"; var lowCaseStr = myStr.toLowerCase();//"i,love,you,do,you,love,me"; var upCaseStr = myStr.toUpperCase();//"I,LOVE,YOU,DO,YOU,LOVE,ME"
十、字符串匹配
字符串匹配可能須要你對正則表達式有必定的瞭解,先來看看match()函數:
var myStr = "I,love,you,Do,you,love,me"; var pattern = /love/; var result = myStr.match(pattern);//["love"] console.log(result .index);//2 console.log(result.input );//I,love,you,Do,you,love,me
如你所見,match()函數在字符串上調用,而且接受一個正則的參數。來看看第二個例子,使用exec()函數:
var myStr = "I,love,you,Do,you,love,me"; var pattern = /love/; var result = pattern .exec(myStr);//["love"] console.log(result .index);//2 console.log(result.input );//I,love,you,Do,you,love,me
簡單吧,僅僅是把正則和字符串換了個位置,即exec()函數是在正則上調用,傳遞字符串的參數。對於上面兩個 方法,匹配的結果都是返回第一個匹配成功的字符串,若是匹配失敗則返回null. 再來看一個相似的方法search(),如:
var myStr = "I,love,you,Do,you,love,me"; var pattern = /love/; var result = myStr.search(pattern);//2
僅返回查到的匹配的下標,若是匹配失敗則返回-1.