2012-11-27 13 views
7

So come dividere usando, separatori multipli ma non ho idea di come dividere una stringa in un array tra due caratteri. Quindi:Come dividere la stringa tra due separatori in javascript?

var myArray = "(text1)(text2)(text3)".split(???) 
//=> myArray[0] = "text1", myArray[1] = "text2", myArray[2] = "text3" 

Cosa devo inserire nel "???"? O c'è un approccio diverso che dovrei usare?

Making ") (" separatore non funziona come voglio dividere la matrice con una varietà di separatori come ">" che rende molto poco pratico elencare ogni possibile combinazione di separatori

risposta

8
.split(/[()]+/).filter(function(e) { return e; }); 

Vedi this demo.

+4

Si prega di fornire una spiegazione, senza uno questa risposta non è particolarmente utile. – Madbreaks

1

Uso dividere tra caratteri specifici senza perdere alcun carattere non è possibile con JavaScript, perché sarebbe necessario un lookbehind per quello (che non è supportato) Ma dal momento che sembra che i testi all'interno di parentesi, invece di dividere si potrebbe solo match la stringa più lunga possibile che non contiene parentesi:

myArray = "(text1)(text2)(text3)".match(/[^()]+/g) 
+0

questa risposta è la più sensibile per il comportamento che OP vuole (non una semplice divisione di stringhe) ma fallirà per es. '" (text (1) (text (2) "'. You _can_ fa corrispondere anche le parentesi di apertura, quindi 'map' loro;' .match (/ \ ([^)] +/g) .map (funzione (e) {return e.slice (1);}); ' –

+0

@PaulS è sicuro, ma sembra piuttosto invalido e le cose con nidificazione adeguata non possono comunque essere uguali. 1) (testo (2) 'ma non' (1) testo) (2) testo) 'o' (te (1) xt) (te (2) xt) '? –

+0

Dear Downvoter, potresti lasciare un commento ? –

Problemi correlati