JavaScript修剪字符

时间:2016-08-24 02:10:53

标签: javascript jquery

我想删除"()"从每个值。我该怎么做?

var arr = ["(one)","(two)","(three)","(four)","(five)"];

for(var i = 0; i < arr.length; i++){
  console.log(arr[i]);
}

4 个答案:

答案 0 :(得分:4)

由于所有其他答案都不必要地复杂化,这里有一个简单的答案:

arr = arr.map(s => s.slice(1, -1));

如果您愿意,也可以就地进行;重要的部分是.slice(1, -1),它从索引1(第二个字符)的字符开始,在最后一个字符(-1之前)结束时获取子字符串。

String.prototype.slice documentation on MDN

答案 1 :(得分:1)

var arr = ["(one)","(two)","(three)","(four)","(five)"];
for(var i = 0; i < arr.length; i++){
    var arrLength = arr[i].length -2;
    var shortArr = arr[i].substr(1,arrLength);
    console.log(shortArr);
}

这会在正面和背面减少一个字符

答案 2 :(得分:0)

匹配(后跟任何非)后跟)的内容。 "(test(ing)123)",(如果你关心)

也会失败
var arr = ["(one)","(two)","(three)","(four)","(five)"];
for(var i = 0; i < arr.length; i++) {
    arr[i] = arr[i].replace(/\(([^)]+)\)/g, "$1");
}

这更简单/更快(但可以说更脆弱):

var arr = ["(one)","(two)","(three)","(four)","(five)"];
for(var i = 0; i < arr.length; i++) {
    arr[i] = arr[i].substr(1, arr[i].length - 2);
}

答案 3 :(得分:0)

这很快,无论字符串中有多少个括号,它都应该有效,它会将它们全部删除。

arr[i] = arr[i].split(/\(|\)/g).join("");