我有一个像下面这样的字符串...

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/

10-13 07:31