2016-05-26 1 views
-1

J'essaie de séparer une chaîne en deux mots par un séparateur en Javascript en utilisant une regex.Comment diviser une chaîne en deux mots avec un séparateur excluant le séparateur lui-même en Javascript en utilisant regex?

C'est le modèle que je suis en train:

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

Le séparateur peut être:

"/" 
" /" 
"/ " 

Considérant ce cas de test:

word1/word2 

Mon résultat réel est:

"word1 " 
"/ word2" 

Comment puis-je obtenir les deux jetons:

word1 
word2 

De plus, je veux aussi correspondre à un seul mot (si la chaîne est seulement « mot1 », « mot1 » doit être adapté.

Merci.

+1

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

Répondre

2

Vous pouvez faire simple, split:

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

Les espaces sont facultatifs de chaque côté donc même ceux-ci travailleront:

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

oui, ça marche mais je veux le diviser par la regex –

+0

un autre: - simplement diviser sur// et puis couper – rock321987

+1

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

0

La solution de rechange à l'aide String.match fonction:

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

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