2016-05-26 16 views
-1

Ich versuche, eine Zeichenfolge in zwei Worten durch ein Trennzeichen in Javascript mit einem Regex zu trennen.Wie teilt man eine Zeichenfolge in zwei Wörter mit einem Trennzeichen, das Trennzeichen selbst in Javascript mit Regex?

Dies ist das Muster, das ich versuche:

(.*)(?=\s*[/]\s*)(.*) 

Der Separator sein kann:

"/" 
" /" 
"/ " 

diesen Testfall unter Berücksichtigung

word1/word2 

Mein tatsächliches Ergebnis ist:

"word1 " 
"/ word2" 

Wie erhalte ich die beiden Token:

word1 
word2 

Darüber hinaus habe ich auch nur ein einziges Wort übereinstimmen soll (wenn die Zeichenfolge nur „word1“ ist, „word1“ hat abgestimmt werden.

Danke.

+1

[ '([^ \/\ s +] +)'] (https://regex101.com/r/zT8mF0/1) – Tushar

Antwort

2

Sie können einfach tun split:

var words = 'word1/word2'.split(/\s*\/\s*/) 
//=> ["word1", "word2"] 

Spaces auf beiden Seiten sind optional so auch diese funktionieren:

words = 'word1 /word2'.split(/\s*\/\s*/) 
//=> ["word1", "word2"] 

words = 'word1/word2'.split(/\s*\/\s*/) 
//=> ["word1", "word2"] 

words = 'word1/ word2'.split(/\s*\/\s*/) 
//=> ["word1", "word2"] 
+0

ja, es funktioniert aber ich möchte es durch die Regex –

+0

anderen teilen: - einfach auf '/' teilen und dann trimmen – rock321987

+1

'str.split ('/'). map (e => e.trim())' @ rock321987 – Tushar

0

Die alternative Lösung mit String.match Funktion:

var str = 'word1/word2/ word3/word4 /word5', 
    words = str.match(/(?=\/\s?)?(\w+)(?=\s?\/)?/g); 

console.log(words); // ["word1", "word2", "word3", "word4", "word5"] 
Verwandte Themen