之前有个需求,将"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")