字符串替换有三种方法:
-
字符串连接(简单易想易实现)
截取其中几位,然后分别连接。
var str = "asdf123456"; var sp = function(begain, end, mainStr, replaceStr){ var len = mainStr.length; end = end >= len ? len : end; begain = begain > len || begain < 0 ? 0 : begain; var bStr = mainStr.substr(0, begain); var eStr = mainStr.substr(end, len); return bStr + replaceStr + eStr; } console.log(sp(6, 10, str, "1234")); //asdf121234
-
字符串变数组然后变字符串(稍难不太易想,但是全用内置函数不用自己实现)
把字符串split替换成数组,然后用slice替换,然后join返回字符串
var str = "asdf123456"; var arr = str.split(''); var replaceArr = arr.splice(6,10, '1234'); var res = arr.join(''); console.log(res);
-
正则 (难但是代码最少)
var str = "asdf123456"; var res = str.replace(/(\w{6})(\w{4})(.*)/, '$11234$3'); console.log(res);
总结:对正则不熟悉的,建议第二条。想练习正则的,可以看一下我的笔记:传送门