Najprawdopodobniej odpowiedź @dystroys jest tą, której szukasz. Ale jeśli dowolne znaki inne niż znaki alfanumeryczne (A-Z
, a-z
, 0-9
lub _
) mogą otaczać "podział =
"), to jego rozwiązanie nie będzie działać. Na przykład ciąg
It's=risqué=to=use =Unicode!=See?
będzie podzielony na
"It's", "risqué=to", "use Unicode!=See?"
Więc jeśli chcesz tego uniknąć, normalnie można użyć lookbehind twierdzenie:
result = subject.split(/(?<!=)=(?!=)/); // but that doesn't work in JavaScript!
Więc chociaż będzie tylko podzielone na pojedyncze =
s, nie można go używać, ponieważ JavaScript nie obsługuje modelu (?<!...)
lookbehind twierdzenie.
Na szczęście zawsze można przekształcać operacji split()
w globalnej match()
pracy dopasowując wszystko, co pozwoliło między ograniczniki:
result = subject.match(/(?:={2,}|[^=])*/g);
daje
"It's", "risqué", "to", "use ", "Unicode!", "See?"
Czy zawsze będą znaki alfanumeryczne wokół '=' s, które chcesz podzielić? A może może być coś takiego jak "hello: =! Goodbye", które powinno zostać podzielone na 'hello:' i '! Goodbye'? –