Molto probabilmente, la risposta di @dystroys è quella che stai cercando. Ma se qualche carattere diverso da alfanumerici (A-Z
, a-z
, 0-9
o _
) potrebbe circondare un "splitting =
"), la sua soluzione non funzionerà. Ad esempio, la stringa
It's=risqué=to=use =Unicode!=See?
sarebbe diviso in
"It's", "risqué=to", "use Unicode!=See?"
Quindi, se è necessario evitare che, si usa normalmente un'affermazione lookbehind:
result = subject.split(/(?<!=)=(?!=)/); // but that doesn't work in JavaScript!
Quindi, anche se questo sarebbe diviso solo su singolo =
s, non è possibile utilizzarlo perché JavaScript non supporta il (?<!...)
lookbehind asserzione.
Fortunatamente, si può sempre trasformare un'operazione split()
in un match()
un'operazione globale abbinando tutto ciò che è permesso tra delimitatori:
result = subject.match(/(?:={2,}|[^=])*/g);
vi darà
"It's", "risqué", "to", "use ", "Unicode!", "See?"
fonte
2013-01-08 15:03:03
Ci saranno sempre caratteri alfanumerici attorno a '=' s su cui vuoi dividere? Oppure potrebbe esserci qualcosa come "ciao: =! Ciao" che dovrebbe essere diviso in "ciao" e "ciao"? –