前言
昨日导师教了一个字符串的 replaceAll 方法,我愣了好几秒,也可能用过忘记了吧。
顾名思义,relaceAll 是替换所有的,replace 自然是替换第一个。当然,replaceAll 出生之前,replace 配合正则也是可以实现 replaceAll 的功能的。
可我又按捺不住好奇心,还想扒出 replace 的种种,于是去各大网站搜索。这一扒,竟然发现 Java 中也有同样的方法,不仅有 replace 和 replaceAll,还有 replaceFirst。唉,我这个门外汉还是不叨叨了,只是发觉好有意思,提一嘴。下面干活了。
replace 替换第一个符合条件的
<template>
<div v-html="message">
</div>
</template>
<script>
export default {
data() {
return {
message: '',
}
},
mounted () {
let msg = '浮生记、燕无歇、醉倾城、醉千年、离人愁、卷珠帘'
this.message = msg.replace('、','#')
}
};
</script>
replaceAll 替换所有符合条件的
<template>
<div v-html="message"></div>
</template>
<script>
export default {
data() {
return {
message: '',
}
},
mounted () {
let msg = '浮生记、燕无歇、醉倾城、醉千年、离人愁、卷珠帘'
this.message = msg.replaceAll('、','<br/>')
}
};
</script>
replace 配合正则替换所有符合条件的
<template>
<div v-html="message">
</div>
</template>
<script>
export default {
data() {
return {
message: '',
}
},
mounted () {
let msg = '浮生记、燕无歇、醉倾城、醉千年、离人愁、卷珠帘'
this.message = msg.replace(/、/g,'+')
}
};
</script>
补充:match 和 matchAll
既然都到这个份上了,那就瞅一瞅 match 和 matchAll 吧
let msg = 'abcdefgabcdefgabcdefg'
let message1 = msg.match(/a/)
console.log(message1)
// [ 'a', index: 0, input: 'abcdefgabcdefgabcdefg', groups: undefined ]
let message2 = msg.match(/a/g)
console.log(message2)
// [ 'a', 'a', 'a' ]
let message3 = [...msg.matchAll(/a/g)]
console.log(message3)
//[
// [ 'a', index: 0, input: 'abcdefgabcdefgabcdefg', groups: undefined ],
// [ 'a', index: 7, input: 'abcdefgabcdefgabcdefg', groups: undefined ],
// [ 'a', index: 14, input: 'abcdefgabcdefgabcdefg', groups: undefined ]
//]
注意 matchAll 匹配的时候,不带 g 会报错。好了,我也只懂这么一丢丢,散场......