2016-08-24 6 views
2

各値から "()"を削除します。どうすればいい?JavaScriptのトリム文字

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

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

すべての値は '('と ')'で始まり、終わりになりますか? – Ryan

+0

はい、実際には各値から(と)を削除したいと思います。 – Roth

答えて

1

使用replace

var arr = ["(one)","(two)","(three)","(four)","(five)"]; 
for(var i = 0; i < arr.length; i++){ 
var x = arr[i]; 
x = x.replace(/[()]/g,""); 
console.log(x); 
} 

注:
私はdedited alexanderは正しかったので、


ので、uは、世界的に検索のために、正規表現を使用するように "G" が必要
」 [""] "内のすべての文字を検索する

+1

OPが気になる場合、 ''(test(ing)123) ''に失敗します。 –

0

これは(と一致し、その後に)でないものが続き、その後に)と一致します。 (あなたが気にしている場合)も

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

これは、はるかにシンプル/高速化(しかし、間違いなく、より脆い)である"(test(ing)123)",のために失敗します:

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); 
} 
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); 
} 

これは前面に1つの少ない文字を取得し、戻る

4

他のすべての回答は不必要に複雑なので、ここでは単純なものです:

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

好きな場所でインプレイスでも実行できます。重要な部分は.slice(1, -1)であり、インデックス1(第2文字)の文字から始まり、最後の文字(-1)の前に終わる部分文字列をとります。

String.prototype.slice documentation on MDN

+0

は '' test ''のために失敗するでしょう – Tibrogargan

+1

@Tibrogargan:質問者が*すべての*値が'( 'と') 'で始まり、終わることを確認したコメントを明確にしてください。 – Ryan

+0

's.substr(1、s.length -2)'は 'slice(1、-1)'よりも効率的で、forループは 'map'よりも効率的です。どうして彼らを選んだの?決して気にしないでください、substrとスライスは、より多くのテストと同じであるようです。 – Tibrogargan

0

これは高速であり、文字列であり、それはそれらをすべて削除しますどのように多くの括弧に関係なく動作するはずです。

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

これは高速ではありません。それは私の正規表現 – Tibrogargan

+0

@Tibrogargan笑よりも遅いです、あなたは私の正規表現が遅い点があるかもしれませんが、私は正規表現にあまり堪能ではありません。私は正規表現のためにこれを/ [\\(\\)]/gすることができたかもしれませんが、私はそれがより効率的かどうかわかりません...私がstring.splitを使って "fast" ()とjavascriptのstring.joinの組み合わせ...私はおそらく明らかにする必要があります。 – JustSomeDude

+0

@Tibrogarganこの答えは、あなたの "高速"正規表現が実際には失敗する "(test(ing)123)"を含む、このページで言及されたすべてのテストケースを通過します...あなたの正規表現が " :) – JustSomeDude

関連する問題