javascript - 使用javascript替换特定位置的所有空格

标签 javascript regex

我有一个像这样的字符串:

image.id."HashiCorp Terraform Team <terraform@hashicorp.com>" 
AND  image.label."some string"."some other string"

我只想用引号括起来的字符串用'___'替换所有空格,所以最终的字符串看起来像:

  image.id."HashiCorp___Terraform___Team___<terraform@hashicorp.com>" 
    AND  image.label."some___string"."some___other___string"

我已经试过了:

text = text.replace(/"(\w+\s+)+/gi, function (a) {
                return a.replace(' ', _delimiter);
            });

但它只替换了第一个空格,所以我得到: HashiCorp___Terraform Team <terraform@hashicorp.com> . 和 some___other string

我对正则表达式非常不满意,所以我可能做错了什么:(

最佳答案

您可以使用 /[^"]+"/g 正则表达式来匹配两个 " 字符之间的子字符串,然后在回调方法中替换空白字符:

var text = 'image.id."HashiCorp Terraform Team <terraform@hashicorp.com>" \nAND  image.label."some string"."some other string"';
var _delimiter = "___";
text = text.replace(/"[^"]+"/g, function (a) {
          return a.replace(/\s/g, _delimiter);
});
console.log(text);

"[^"]+" 模式匹配 ",然后是 " 以外的 1 个或多个字符,然后是结束 a 变量保存匹配值,a.replace(/\s/g, _delimiter) 将匹配值内的每个空白字符替换为“分隔符”。

关于javascript - 使用javascript替换特定位置的所有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52758901/

相关文章:

java - 获取 Group 与 Asterisk 的匹配项?

javascript - 如何循环遍历正则表达式匹配的字符串,concat 返回新的完整字符串

c# - 用于在匹配引号之间选择数据的正则表达式模式

javascript - 使用 for Loop() 在数组中查找唯一数字

JavaScript 从另一个子 div 更改特定子 div 的样式

javascript - jquery步骤 |在 ajax 内容加载时将数据发送到服务器

javascript - 将 JavaScript 对象/数组转换为 Python 字典/列表的最快方法

javascript - 使用 Angular 加入 1-1 聊天后 PubNub ChatEngine "Converting circular structure to JSON"错误

Python 正则表达式,用于空白行之前的所有内容

javascript - 正则表达式无法解析 0-23 之间的数字