修补以下挑战几个小时:
有一个字符串数组。这些字符串中的一些可能在开始和结束引号引起来。这些引号(如果存在)应删除。
一个例子:
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] ... >
答案 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 抓住进行了更新。谢谢!
^[“”"]+|[“”"]+$
-这里的正则表达式将starts
和ends
与“
或其他"
进行匹配。由于我们使用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);