2016-11-09 5 views
2

Gibt es eine gute RegExp zum Ersetzen von 2 oder mehr vertikalen Balken Zeichen ("||") aus einer Zeichenfolge in einem vertikalen Balken ("|")? Ich benutze AngularJS 1.5.7. $ Scope.outputValue ist ein Array, das ich String bin Konvertieren und Implementierung 2 verschiedene regexps danach:Entfernen Sie aufeinanderfolgende vertikale Balken in JS Zeichenfolge

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

Problem ist, dass, abhängig von dem Benutzer-Eingang in einem Textfeld, meine Array ähnliche Ergebnisse wie diese gibt (die vertikale pipebar Separator duplizieren):

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

und es sollte so gehen:

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

Danke, Nenad

+1

'.replace (/ \ | \ |/g, '|') ' – Tibrogargan

+0

BTW. '[" Eins "| "zwei" | "drei" ||| "vier" || "fünf"] 'ist nicht gültig JavaScript – Tibrogargan

+0

@Tribargargan Ich denke nicht, dass das tun wird, was gewünscht wird; Wenn mehr als zwei Pipes vorhanden sind, wird extra '| –

Antwort

0

Verwenden Sie den + Quantifizierer. Lies es als "eins oder mehr". Es ist großartig für den Abgleich und Sequenzen zu reduzieren, wie mehrere Räume Quetschen, wo man oft so etwas wie dies sehen werden:

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

+0

Ich glaube, die richtigen metasytaktischen Variablen wären plugh, dann xyzzy: D (Hmm, obwohl https://gist.github.com/hail2u/6561431 stimmt nicht mit mir überein :( –

+0

@DaveNewton whoa, das ist toll, ich habe die meisten davon noch nicht benutzt gesehen. Ich habe sie passiv gesammelt, weil sie sehr nützlich sind, aber mir war nicht wirklich bewusst, wie speziell und Lieber sind sie für mich. Ich erkläre "asdf" zu einem sehr großen Mitglied des Sets. <3 asdf |||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| | –

+0

Da ich keine Frage dazu aufschlagen werde, könnt ihr mir kurz sagen, warum sie metasyntaktisch sind Variablen so wichtig für Sie? : p Ich benutze es nie Ich verstehe nicht den Zweck, obwohl ich Wikipedia-Artikel darüber gelesen habe. es ist nur Platzhalter richtig? Sie verwenden besser echte Variablennamen lol! – antoni

Verwandte Themen