709 to lower case 及字串方法總結
/** * @param {string} str * @return {string} */ var toLowerCase = function(str) { var result = ''; for(var i =0; i< str.length; i++){ var code = str[i].charCodeAt(); if(65 <= code && code <= 90 ){ code +=32; result += String.fromCharCode(code); } else{result += str[i]; } } return result; }; console.log(toLowerCase('Hello'));
這裡是用了一個新的result='';
遍歷字串,如果是大寫字母(用函式charCodeAt()獲取ascii碼),則+32利用String.fromCharCode(xxx)變成小寫,加入到result中,不是的話就正常加入
這裡著重學習2個函式,str.charCodeAt() 和 String.fromCharCode(xxx), 並且學會使用ASCII碼去解決相關的問題。
注意:
字串不可改變,不可通過for遍歷去改變
split()用於字串轉換成陣列,2個引數,(分隔符,最大元素數)
splice()用於陣列,改變原陣列,slice()即可用於陣列,也可用於字串
引申出來一個比較大的話題: 關於JS字串的相關方法
1.和陣列關係密切 陣列和字串可以相互轉換
字串的話,用split()方法,陣列的話用join()方法
2.字串轉換
xxx.toString() String(xxx) ''+xxx 三種方法都可以
3.字串分割成陣列 split()
4.獲取字串長度 str.length 有一個技巧就是可以通過str[str.length - 1]獲取到最後一項的元素
5.可以用indexOf()查詢字串 查到返回下標,查不到返回-1,可以用這個判斷是否存在
lastIndexOf()可以後面開始查詢,返回第一個查到的下標
6.字串替換 replace('a','b') a替換成b 可以在第一個字串引數使用正則表示式,/a/g 全域性替換掉a
7. str[0].charCodeAt() 返回ascii碼 String.fromCharCode(90) 返回'z';
8.字串拼接
可以直接相加
也可以使用 str1.concat(str2 )
9.獲取子字串
第一種可以用 slice(0,5) 左閉右開
第二種subString(0,5) 依舊是左閉右開
第三種 subStr(0,5) 第二個引數是字元的數量 這裡代表拿5個字元
10.大小寫轉換
str.toUpperCase()
str.toLower()
11.字串匹配
match()方法 接受一個正則表示式的變數,返回陣列,有g返回匹配字串的陣列 ,沒有g返回匹配的一個字串和一個捕獲組(index和input) 找不到返回null
12.字串比較
可以用大於,小於,等於號比較
可以用localeCompare()比較