我想知道如果这个字符不是%而不是空格,我怎么能写正则表达式来在数字和字符之间加一个空格。
var str = "... 15a...".replace(/(\d+)(\D+)/g,'$1 $2')
以上并没有像我期望的那样工作,例如我需要以下约束
"... 15a ..." => "... 15 a ..."
"... 15 a ..." => "... 15 a ..."
"... 15% ..." => "... 15% ..."
我将不胜感激。
答案 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')
应该做的伎俩。