首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JavaScript中替换字符串中介于4“字符之间的字符串

问在JavaScript中替换字符串中介于4“字符之间的字符串
EN

Stack Overflow用户
提问于 2017-01-14 21:18:01
回答 1查看 36关注 0票数 0

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

对于包含4“(需要删除的两段文本)的字符串,replace()函数删除了太多的文本。它删除了第一个”和最后一个“之间的所有文本,而应该删除第一个和第二个”以及第三个和第四个“之间的文本。

有人知道解决这个问题的办法吗?

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

下面是我的JavaScript代码:

代码语言: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,它返回了错误的字符串数组。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-14 21:27:10

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

代码语言:javascript
复制
console.log(array.map(e=>e.split("\"").map((a,i)=>i%2==0?a:undefined).join("")));

Split with ",然后每隔一段时间删除数组的一部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41650420

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档