之前有个需求,将"DRL" 转成"D.R.L", 想了半天,不知道怎么用正则匹配做到往字母里面插新的符号,后来索性用replace方法直接手动替换整体解决的。
后来发现虽然js的string并没有join()方法,但array有join()方法,所以可以将string转成array,再用join()
例: 将 "abcde" 转换成"a-b-c-d-e"
'abcde'.split('').join('-')
第二种方法是利用正则匹配中的锚字符B, B匹配非字符边界的位置 也就是W和W或者w和w的边界
简单点说 'abcde'可以看作 ^()a(B)b(B)c(B)d(B)e()$ :
'abcde'.replace(/B/g,'-');
值得注意的是,下划线 _ 属于w而连字符 - 属于W
而python中提供了string的join方法,可以直接完成
'-'.join("abcde")
如果只是在特定位置插入一个符号,可用借数组的splice方法,同样也是得先把字符串转换为数组.
如: 'abcdef' ==> 'ab-cdef'
let str = 'abcdef'; let arr = str.split(''); arr.splice(2,0,'-'); str = arr.join(''); //ab-cdef