javascript - 在 JavaScript 中替换 4 个“字符之间的字符串中的字符串片段

标签 javascript string replace

​ 在 JavaScript 中,我有一个自动生成的字符串数组(通过 GET 请求),其中字符串中包含字符“。我的目标是删除单个字符串中两个“内的所有文本。 使用 replace() 函数适用于字符串中只有 2 个 "而不是 4 个的字符串。

对于具有 4 "(需要删除的两段文本)的字符串,下面示例中的 array[3]replace() 函数也会删除太多文本。它会删除第一个“和最后一个”之间找到的所有文本,同时应删除第一个和第二个“以及第三个和第四个”之间的文本。

有人知道这个问题的解决方案吗?

请注意:我在代码中使用的数组是从其他地方自动生成的。手动更改字符串数组是不可能的。对于下面和 Fiddle 中的脚本,我使用转义字符\将 "包含在字符串中,但在我的实际数组中,这些字符不存在。

这是我的 JavaScript 代码:

var array = ["John Mayer & Peter Right", "John \"the Man\" Mayer & Peter Right", "John Mayer & Peter \"the King\" Right", "John \"the Man\" Mayer & Peter \"the King\" Right"]
new_array = []
    for (var i = 0; i < array.length; i++){
        var edit_string = array[i].replace(/".*"/, "")
        new_array.push(edit_string)
    }
console.log(new_array) // ["John Mayer & Peter Right", "John  Mayer & Peter Right", "John Mayer & Peter  Right", "John  Right"]

我有一个工作Fiddle返回错误的字符串数组。

最佳答案

我不是正则表达式专家。我会用普通的 js 来做到这一点:

console.log(array.map(e=>e.split("\"").map((a,i)=>i%2==0?a:undefined).join("")));

用“分割,然后删除数组的每隔一个部分。

关于javascript - 在 JavaScript 中替换 4 个“字符之间的字符串中的字符串片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41650420/

相关文章:

javascript - 在 MixedCollection 中搜索项目

css - 更正整个应用程序的旧路径

javascript - 如何在 Alfresco Share 3.4 中获取 alf_ticket

java - 从Java中的字符串中提取特定但未知的值

c - 使用字符串数组时出现总线错误 10 - C

c - 为什么我的 char 数组没有产生越界错误?我故意分配了不足的内存,但我仍然可以分配更大的字符串

arrays - Postgres array_replace() 函数替换子数组

regex - Perl 正则表达式在相同情况下替换

javascript - Angular 中使用的$$(双美元符号)是什么?

javascript - d3.js 中具有特定时区的时间轴