2016-11-09 6 views
2

文字列から2つ以上の縦棒文字( "||")を1つの縦棒( "|")に置き換えるには、良いRegExpがありますか?私はAngularJS 1.5.7を使用しています。 $ scope.outputValueは、私が文字列に変換し、その後2つの異なる正規表現を実装しています配列です:JS文字列の連続する縦棒を削除する

$scope.outputValue =  $scope.outputValue.toString(); 
$scope.outputValue =  $scope.outputValue.replace(/,/g, "|"); 
$scope.outputValue =  $scope.outputValue.replace(/[\s,]+/g, ' '); 

問題は、テキストエリア内のユーザの入力に応じて、私の配列は、(このような同様の結果が得られる、ということです垂直pipebarセパレータ)複製:

$scope.outputValue = ["one" | "two" | "three" ||| "four" || "five" ]; 

をし、それはこのように行く必要があります、

$scope.outputValue = ["one" | "two" | "three" | "four" | "five" ]; 

おかげネナド

+1

'.replace(/ \:それはあなたが頻繁にこのような何かを見ることができます複数のスペースを、退治のように、配列が一致して減少させるための素晴らしいことです) ' – Tibrogargan

+0

BTW。 '[" one "| "two" | "three" ||| "four" || "five"] 'は有効ではありませんJavaScript – Tibrogargan

+0

@Tibrogargan私はそれが望むことをするとは思わない。 2つ以上のパイプがあるときは余分な '|'を残します。 –

答えて

0

+限定記号を使用してください。それを「1つ以上」と読んでください。 '|' | \ |/gで、

console.log('foo|bar||baz|||quux||||norf|||||'.replace(/\|+/g, '|'))

+0

で動作するでしょう。適切なメタシンセティック変数がplughであると信じていれば、xyzzy:D(Hmm、https://gist.github.com/hail2u/6561431私に同意しません:( –

+0

@DaveNewton whoa、これは大変ですが、これまでに使われていたものの大半は見たことがありません。大事なのは私のものです。私は、 "asdf"がセットの非常に大きなメンバーであると宣言します。<3 asdf ||||||||||||||| ||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||| | –

+0

私はそれについて質問をするつもりはないので、あなたは簡単に私になぜメタセシンチックなのか教えてもらえますか?変数はとても重要ですか? :p私はそれを使用しない私はそれについてウィキペディアの記事を読むにもかかわらず、私は目的を取得しません。それはただのプレースホルダですか?あなたは実際の変数名をうまく使っています! – antoni

関連する問題