正则表达式在数字和字符之间放置空格

时间:2014-05-20 06:23:00

标签: regex node.js

我想知道如果这个字符不是%而不是空格,我怎么能写正则表达式来在数字和字符之间加一个空格。

var str = "... 15a...".replace(/(\d+)(\D+)/g,'$1 $2')

以上并没有像我期望的那样工作,例如我需要以下约束

"... 15a ..." => "... 15 a ..."
"... 15 a ..." => "... 15 a ..."
"... 15% ..." => "... 15% ..."

我将不胜感激。

3 个答案:

答案 0 :(得分:0)

var str = "... 15a...".replace(/(\d+)([a-z]+)/g,'$1 $2')

答案 1 :(得分:0)

"... 15a...".replace(/(\d+)([^%\d\s]+?)/g,'$1 $2')   

" ... 15 a ..."

  

" ... 15 a ..." .replace(/(\ d +)([^%\ d \ s] +?)/ g,' $ 1 $ 2&# 39;)

" ... 15 a ..."

  

" ... 15%......" .replace(/(\ d +)([^%\ d \ s] +?)/ g,' $ 1 $ 2&# 39;)

" ... 15%......"

答案 2 :(得分:0)

好吧,你试图找到一个数字后跟一个非数字,非百分号字符。所以这个:

replace(/(\d)([^\d\s%])/g,'$1 $2')

应该做的伎俩。