今天收到朋友的求助。
兩道面試題:
1.請空字符串前后的空格。
實現思路:
- 在原型String對象上擴展一個方法叫trim;
- 里面的正則是查找除了空格以外的所有字符,這樣就起到去除空格了。
- 接着調用就ok了。
String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g,""); } var str=" test ";//你的字符串 alert("["+str.trim()+"]")
2.找出出現最多次數的字符
- 先來一個高級版的哈
- 實現原理:利用while循環比較每次計算后的字符串長度
var str = "aaaabbbcccccddfgh"; var maxLength = 0; var result = ""; while(str!=''){ oldStr = str; getStr = str.charAt(0); str = str.replace(new RegExp(getStr,"g"),""); if( oldStr.length-str.length > maxLength){ maxLength = oldStr.length-str.length; result = getStr + "=" + maxLength; } } alert(result);
- 來一個復雜的但是思路是較大眾的
- 就是循環遍歷然后比較,分別求出字符和出現的次數
var str = "aaaabbbccccddfgh"; var obj = {}; for (var i = 0, l = str.length; i < l; i++) { var key = str[i]; if (typeof obj[key] == 'undefined') { obj[key] = 1; } else { obj[key]++; } } var max = -1; var max_key = ""; var key; for (key in obj) { if (max < obj[key]) { max = obj[key]; max_key = key; } } alert("字符:"+max+" 出現次數:"+max_key);
String.prototype.trim=function(){ return this.replace(/(^\s*)|(\s*$)/g,"");}var str=" test ";//你的字符串alert("["+str.trim()+"]")