44.更多replace案例
正則的捕獲有兩種:
1.exec方法
2.字符串的match方法
3.字符串的replace方法:將原有的字符替換成我們新的字符
在不使用正則的情況下,使用replace只能替換正則中的一個(gè)
在replace當(dāng)中我們可以一次批量的把所有正則匹配的內(nèi)容都替換掉-- replace中是支持正則的
練習(xí):
1.獲取一個(gè)字符串中出現(xiàn)次數(shù)最多的字符,并且獲取出現(xiàn)的次數(shù)
// 1)獲取每一個(gè)字符出現(xiàn)的次數(shù)
var str = "zhangsanpeixunyangfanqihang";
var obj = {};
str.replace(/[a-z]/gi,function(){
var val = arguments[0]
obj[val] >= 1 ? obj[val] +=1 :?obj[val] = 1
})
console.log(obj)
// 2)獲取最多出現(xiàn)的次數(shù)
var maxNum = 0;
for (var key in obj) {
obj[key] > maxNum ? maxNum = obj[key] : null;
}
// 3)把所有符合出現(xiàn)maxNum次數(shù)的都獲取到
var ary = [];
for (var key in obj) {
obj[key] === maxNum ? ary.push(key) : null;
}
console.log("整個(gè)字符串中出現(xiàn)次數(shù)最多的字符是:" + ary.toString() + ",出現(xiàn)了" + maxNum + "次")
2.模板引擎實(shí)現(xiàn)的初步原理
var str = "my name is {0},my age is {1},i come form {2},i love {3}~";
var ary = ["崔俊麗","18","china","JavaScrpt"];
str = str.replace(/{(\d+)}/g,function () {
return ary[arguments[1]];
// return ary[RegExp.$1]; // 在IE下是不兼容的
});
console.log(str);
思考題:
1."2015-9-22 13:10:0" 替換成"2015年09月22日 13時(shí)10分00秒"
2.把一個(gè)字符串中所有單詞的首字母大寫(xiě) “zhang san pei xun” -> "Zhu Feng Pei Xun"
3.需求:queryURLParameter
把url中的參數(shù)都獲取到,并且保存成如下格式?
方式一:
var str = "http://kbs.sports.qq.com/kbsweb/game.htm?mid=10000&cid=1467086&app=1.0";
var obj = {mid: "10000",cid:"1467986",app:"1.0"}var reg = /([^?=&]+)=([^?=&]+)/g;var obj = {};var res = reg.exec(str);while (res) {obj[res[1]] = res[2];res = reg.exec(str);}console.log(obj);
方式二:
var str = "http://kbs.sports.qq.com/kbsweb/game.htm?mid=10000&cid=1467086&app=1.0";var obj = {};str.replace(reg,function() {obj[arguments[1]] = arguments[2];});console.log(obj);
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/z-dl/p/8985457.html
總結(jié)
以上是生活随笔為你收集整理的44.更多replace案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: solr研磨之facet
- 下一篇: Python小游戏之 - 飞机大战 !