在JavaScript中,我有一个自动生成的字符串数组(通过GET请求),其中包含字符“在一个字符串中。我的目标是删除一个字符串中的所有文本”。使用replace()函数,适用于字符串中只有2“而不是4”的字符串。
对于包含4“(需要删除的两段文本)的字符串,replace()函数删除了太多的文本。它删除了第一个”和最后一个“之间的所有文本,而应该删除第一个和第二个”以及第三个和第四个“之间的文本。
有人知道解决这个问题的办法吗?
请注意:我在代码中使用的数组是从其他地方自动生成的。手动更改字符串数组是不可能的。在下面的脚本中,我使用转义字符\将“包含在字符串中,但在我的实际数组中,这些字符并不存在。
下面是我的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,它返回了错误的字符串数组。
发布于 2017-01-14 21:27:10
我不是正则表达式专家。我会用普通的js来做这个:
console.log(array.map(e=>e.split("\"").map((a,i)=>i%2==0?a:undefined).join("")));Split with ",然后每隔一段时间删除数组的一部分。
https://stackoverflow.com/questions/41650420
复制相似问题