自己使用JavaScript 封装一个字符串替换函数 str_replace,嗯就是模拟一下php的str_replace这个功能,放上代码:
/**
* 字符串替换
* @param {array|string|RegExp} search_str 模式 search_str
* @param {array|string} replace_str 替换为 replace_str
* @param {string} strings 要替换的字符串
* @param {number} l 替换次数,值为-1的时候为全部替换
* @returns {string}
*/
function str_replace(search_str, replace_str, strings, l) {
if (Object.prototype.toString.call(search_str) === "[object Array]") {
if (Object.prototype.toString.call(replace_str) === "[object Array]" && search_str.length == replace_str.length) {
for (var i = 0, len = search_str.length; i < len; i++) {
strings = str_replace(search_str[i], replace_str[i], strings, l);
}
}
} else if (l > 1) {
for (var i = 0; i < l; i++) {
strings = str_replace(search_str, replace_str, strings);
}
} else {
if (typeof replace_str === "string" || typeof replace_str === "number") {
if (Object.prototype.toString.call(search_str) === "[object RegExp]") {
if (l === -1) {
var tag = search_str.global ? "g" : "g";
(search_str.ignoreCase) && (tag += "i");
(search_str.multiline) && (tag += "m");
var reg = new RegExp(search_str.source, tag);
//console.log(reg);
strings = strings.replace(reg, replace_str);
} else {
(search_str.global) || (strings = strings.replace(search_str, replace_str));
}
}
else {
if (l === -1) {
var reg = new RegExp(search_str.replace(/(\.|\*|\+|\?|\(|\)|\[|\]|\{|\}|\\|\/|\|)/gi, "\\$1"), "g");
//console.log(reg);
strings = strings.replace(reg, replace_str);
} else {
strings = strings.replace(search_str, replace_str);
}
}
}
}
return strings;
}
如图: