JavaScript 正则表达式模式

标签 javascript regex string

我有一个如下所示的字符串...

var1=val1 var2=val2 var3="p1 p2 p3 p4" var4="p1 p2" var5=val5

现在我怎样才能替换所有white spacesunderscore仅在内部 ""使用 RegExp 使字符串如下所示...

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...

最佳答案

我知道这个问题已经得到解答,但我想我应该使用积极的前瞻来分享这个正则表达式。这允许您在不使用回调的情况下替换

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 正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13487508/

相关文章:

ruby - 将 UTF-8 空间更改为可使用 RegEx 的空间

javascript - 使用 javascript regexp 从 html 选择图像 url

c# - 正则表达式匹配特定字符串并忽略它是否以某种模式开头

c - 如何检查字符串是否在文件中

javascript - 如何在 JavaScript 中将文本转换为二进制代码?

javascript - 如何处理异步axios api调用

javascript - 自定义复选框(使用图像代替复选框)

javascript - 如何获取可视屏幕的高度

javascript - 如何按类名计算元素数量,并将结果转换为变量?

java - Str.lastIndexOf ("\")给出错误