我有一个像下面这样的字符串...
var1=val1 var2=val2 var3="p1 p2 p3 p4" var4="p1 p2" var5=val5
现在如何使用RegExp仅在
white spaces
内部将所有underscore
替换为""
,以便字符串如下所示...var1=val1 var2=val2 var3="p1_p2_p3_p4" var4="p1_p2" var5=val5
这样通过使用
.replace('"','').split(' ')
,我可以得到一个像下面这样的数组...Array(
var1: "val1",
var2: "val2",
var3: "p1_p2_p3_p4",
var4: "p1_p2",
var5: "val5"
)
没有jQuery,请...
最佳答案
我知道已经回答了这个问题,但是我想我应该积极地与大家分享这个正则表达式。这使您无需使用回调即可输入replace
。
var str = 'var1=val1 var2=val2 var3="p1 p2 p3 p4" var4="p1 p2" var5=val5';
str = str.replace(/\s(?=[^=]*")/g, '_');
解释:
\s match a space...
(?= start of positive look-ahead
[^=]*" ...which is followed by anything except an =, up to a double-quote
) end of positive look-ahead
然后
g
将重复搜索关于javascript - JavaScript RegExp模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13487508/