赞
踩
replace:把原有的字符替换成新的字符
var str = 'pku2016pku2017';
str = str.replace('pku', 'pkusoft');
console.log(str); // pkusoft2016pku2017
在不使用正则的情况下,每次执行只能替换一个字符,每次执行都是从0开始替换,有重复的,无法全部替换
str = str.replace(/pku/g, 'pkusoft'); // 使用正则的全局匹配
console.log(str); // pkusoftsoft2016pkusoft2017
首先和exec捕获一样,把所有和我们匹配正则的都捕获到,然后把捕获的内容替换成我们需要替换的新内容。
/pku/g
按照这个正则把str中所有可以匹配的都捕获到,然后统一都替换成’pkusoft’
str = str.replace(/pku/g, function () {
console.log(arguments);
// 第一次执行: ["pku", 0, "pku2016pku2017"]
// 第一次执行: ["pku", 7, "pku2016pku2017"]
// 返回的数组和执行exec返回的结果一致
return 'pkusoft';
});
console.log(str); // pkusoftsoft2016pkusoft2017
str = str.replace(/(\d+)/g, function () {
// console.log(arguments);
// 第一次执行: ["2016", "2016", 7, "pkusoft2016pkusoft2017"]
// 第一次执行: ["2017", "2017", 18, "pkusoft2016pkusoft2017"]
// 返回的数组和执行exec返回的结果一致
return '0000';
});
console.log(str); // pkusoft0000pkusoft0000
阿拉伯数字转化为中文数字
var str = '20171001';
var arr = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"];
str = str.replace(/\d/g,function () {
var num = arguments[0]; // 把捕获的内容,作为数组的下标
return arr[num];
});
console.log(str); // 贰零壹柒壹零零壹
查找出现最多的字符,并显示个数
var str = 'asdfasdfasdferqehthr';
var obj = {};
var maxNum = 0;
var arr = [];
str.replace(/[a-z]/gi, function () {
var val = arguments[0];
obj[val] >= 1 ? obj[val] += 1 : obj[val] = 1;
});
for (var key in obj) {
obj[key] > maxNum ? maxNum = obj[key] : null;
obj[key] === maxNum ? arr.push(key) : null;
}
console.log("出现字符串最多的字符是: " + arr.toString() + " 出现了 " + maxNum + " 次"); // 出现字符串最多的字符是: a,s,d,f 出现了 3 次
获取url中的参数
var str = 'http://news.baidu.com/ns?cl=2&rn=20&tn=news&word=sport';
// replace 方法
var reg = /([^?=&]+)=([^?=&]+)/g;
var obj = {};
str.replace(reg, function () {
obj[arguments[1]] = arguments[2];
});
console.log(obj); // {cl: "2", rn: "20", tn: "news", word: "sport"}
// exec 方法
var res = reg.exec(str);
while (res) {
obj[res[1]] = res[2];
res = reg.exec(str);
}
console.log(obj); // {cl: "2", rn: "20", tn: "news", word: "sport"}
格式化时间
String.prototype.myFormateTime = function () {
// 2017-10-21 11:08:19
// ?:表示匹配不捕获
var reg = /^(\d{4})(?:-|\/|\.|:)(\d{1,2})(?:-|\/|\.|:)(\d{1,2})(?:\s+)(\d{1,2})(?:-|\/|\.|:)(\d{1,2})(?:-|\/|\.|:)(\d{1,2})$/g;
var arr = [];
this.replace(reg, function () {
arr = (Array.prototype.slice.call(arguments)).slice(1, 7)
});
var format = arguments[0] || "{0}年{1}月{2}日 {3}:{4}:{5}";
return format.replace(/{(\d+)}/g, function () {
var val = arr[arguments[1]];
return val.length === 1 ? "0" + val : val;
})
}
var str = "2017/10/21 11:08:19";
console.log(str.myFormateTime()); // 2017年10月21日 11:08:19
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。