之前有個需求,將"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'可以看作 ^(\b)a(\B)b(\B)c(\B)d(\B)e(\b)$ :
'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