String.prototype.replace()
replace() 方法返回一个由替换值(replacement)替换一些或所有匹配的模式(pattern)后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。
人物描述:
小A:职场阅历丰富 是个老师(本文中,以大哥作为称呼)
小B:应届毕业生 靠走后门 进入公司 正在实习。 (本文中 就叫!@#@#¥#%#¥%,就叫小B吧!)
某一日,大哥见小B无所事事,神情恍惚,于是出了一道小测试,想激发下小B工作的激情。
大哥:“看你听无聊的,我想把 2020-05-28 13:34:22 变成 2020年05月28日。如果是你,你会有什么好的办法,用js整一下。”
小B见状,心里想,网上不是那么多方法吗,看起来不难啊。于是就开始洋洋洒洒 噼噼啪啪的敲上了代码。
心里描述:
2020-05-28 13:34:22,不要时分秒,把后面的截取了。然后把-用文字替换一下
<script type="text/javascript">
var a1 = "2020-05-27 19:34:22";
var a2 = "";
a2 = a1.split(' ')[0];
console.log(a2); //这里输出2020-05-27
//既然如此在截取一次,把-用年月替换下不就成了。
a2 = a2.split('-');
a3 = a2[0]+"年"+a2[1]+"月"+a2[2]+"日";
console.log(a3);// 德行了
</script>
小B心里暗暗自喜,把代码贴给了大哥。
大哥看了以后:“嗯,第一步没问题,但是第二步复杂了。”
于是大哥也贴出了一份代码
<script type="text/javascript">
var a1 = "2020-05-27 19:34:22";
var a2 = a1.split(' ')[0].replace('-', '年').replace('-', '月') + '日';
console.log(a2);
</script>
小B心想,replace会知道那个是年?那个是月吗?
于是打开了MDN看看,就知道了原因。
<script type="text/javascript">
const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';
const regex = /dog/gi;
console.log(p.replace(regex, 'ferret'));
// expected output: "The quick brown fox jumps over the lazy ferret. If the ferret reacted, was it really lazy?"
console.log(p.replace('dog', 'monkey'));
// expected output: "The quick brown fox jumps over the lazy monkey. If the dog reacted, was it really lazy?"
</script>
如果是字符串,那么每次都会替换掉第一个,如果是正则匹配,就会替换掉所有,小B悄悄咪咪的继续跟学习了。