1.字符串或者数组去重(数组或者字符串中只出现字母)。
1). 重复的字符连续出现。例如:aaabbbcccddeeeee
function delRep(str){
return str.replace(/(.)\1+/g,'$1');
}
delRep('aaabbbcccddeeeee'); //abcde
2).任意的重复字符串。 例如:aabcaddcssdxxzx
function delRep(str){
var newStr = '';
for(var i = 0; i < str.length; i++){
newStr.indexOf(str.charAt(i)) == -1?newStr += str.charAt(i):'';
}
return newStr;
}
delRep('aabcaddcssdxxzx');//abcdsxz
2.英文段落字母出现次数统计。
function letSta(str){
var obj = {};
for(var i = 0;i < str.length; i++){
if(/[a-zA-Z]/.test(str.charAt(i))){
obj[str.charAt(i)]?obj[str.charAt(i)]++:obj[str.charAt(i)] = 1;
};
}
return obj;
}
letSta('asfdasgwe sfad ,sadf ');//obj{a: 4,d: 3,e: 1,f: 3,g: 1,s: 4,w: 1}
3.统计英文段落中出现频率最高的字母和它出现的次数
但是必须注意的一点是:频率最高的不一定只有一个!
function letF(str){
var oLets = letSta(str),maxNum = 0,maxLets = [];
for(var i in oLets){
if(oLets[i] > maxNum){
maxNum = oLets[i];
maxLets.splice(0,maxLets.length,i);
}else if(oLets[i] == maxNum){
maxLets.push(i);
}
}
return {maxNum: maxNum,maxLets: maxLets}
}
letF('aaabbbcddddfrrrr');// {maxNum: 4,maxLets:['d','r']}
4.对一段英文中所有单词的首字母大写。
例如:'Study hard, make progress every day.’,变化后为:‘Study Hard, Make Progress Every Day.’
function wordToUp(str){
return str.replace(/\b\w+\b/g, function(word){
return word.substring(0,1).toUpperCase()+word.substring(1);
});
}
wordToUp('Study hard, make progress every day.');//<span style="color: rgb(34, 34, 34); font-family: Consolas, 'Lucida Console', monospace; font-size: 13.3333339691162px; white-space: pre-wrap;">Study Hard, Make Progress Every Day.</span>
同样,要是出现的为给数组实现这些方法可以用str.join('')转化为字符串调用后再用arr.split('')转化为数组。