JS-删除数组中所有字符串开头和结尾的可选/潜在引号

时间:2018-08-09 20:21:48

标签: javascript arrays regex replace

修补以下挑战几个小时:

有一个字符串数组。这些字符串中的一些可能在开始和结束引号引起来。这些引号(如果存在)应删除。

一个例子:

var quotes = [""Hello World"", "Hey Earth", ""\Hot here\""]

期望的结果:

var quotes = ["Hello World", "Hey Earth", "Hot here"]

对于单引号,我试图删除这样的引号...

var newquote = quote.replace(/^\"|\"$/g, '');

但是我很难用完整的数组来做到这一点... 这样我以后可以在

中使用数组
const regex = new RegExp(`(${this.quotes.join('|')})`, 'g');

有人知道这是怎么做的吗? 抱歉,仍然是JS / React新手。非常感谢您的帮助。


更新:

关于引号示例。我知道“” Hello World“”的语法不正确,但是不幸的是,对于console.log(quotes),我得到了这些数据……请参阅[0]和[3] ... enter image description here

4 个答案:

答案 0 :(得分:4)

似乎您拥有",因此您可以轻松做到:

var data = ["“Hello World“", "“Hey Earth“", "\"Hot here\""]

console.log(data.map(x => x.replace(/^[“”"]+|[“”"]+$/g, "")))

结果:["Hello World", "Hey Earth", "Hot here"]

注意:已根据有效评论进行了更新,并通过@revo 抓住进行了更新。谢谢!

^[“”"]+|[“”"]+$-这里的正则表达式将startsends或其他"进行匹配。由于我们使用replace/g(全局),它将在整个字符串中替换它。

答案 1 :(得分:1)

由于数组引号没有有效的语法,因此我将输入数组修改为:

var quotes = ["\"Hello World\"", "Hey Earth", "\"Hot here\""]

要处理数组的所有元素,可以使用映射:

quotes.map(quote => quote.replace(/^\"|\"$/g, ''));

我希望这会有所帮助。

答案 2 :(得分:0)

您的代码应为:var quotes = ["\"Hello World\"", "Hey Earth", "\"Hot here\""]; 如果您的引号是这样,请尝试以下方法:`

var quotes = ["\"Hello World\"", "Hey Earth", "\"Hot here\""];
var newquotes = quotes.map(n => n.replace(/["']/g, ''));
console.log(newquotes);

`

答案 3 :(得分:0)

您可以尝试从数组切换为字符串并处理输出:

var quotes = ["\"Hello World\"", "Hey Earth", "\"\Hot here\""];
var output = quotes.join().replace(/"/g, "").split(",");
console.log(output);