Rất có thể, @dystroys là câu trả lời bạn đang tìm kiếm. Nhưng nếu bất kỳ ký tự nào ngoài chữ và số (A-Z
, a-z
, 0-9
hoặc _
) có thể bao quanh "tách =
"), thì giải pháp của anh ấy sẽ không hoạt động. Ví dụ, chuỗi
It's=risqué=to=use =Unicode!=See?
sẽ được chia thành
"It's", "risqué=to", "use Unicode!=See?"
Vì vậy, nếu bạn cần phải tránh điều đó, bạn thường sử dụng một sự khẳng định lookbehind:
result = subject.split(/(?<!=)=(?!=)/); // but that doesn't work in JavaScript!
Vì vậy, mặc dù điều này sẽ chỉ được chia trên =
s, bạn không thể sử dụng vì JavaScript không hỗ trợ giao diện (?<!...)
quả quyết.
May mắn thay, bạn luôn có thể thay đổi một hoạt động split()
thành một match()
hoạt động toàn cầu bằng cách kết hợp tất cả những gì được phép giữa delimiters:
result = subject.match(/(?:={2,}|[^=])*/g);
sẽ cung cấp cho bạn
"It's", "risqué", "to", "use ", "Unicode!", "See?"
Nguồn
2013-01-08 15:03:03
Sẽ luôn có các ký tự chữ và số xung quanh '=' s mà bạn muốn chia nhỏ không? Hoặc có thể có một cái gì đó như 'hello: =! Goodbye' nên được chia thành' hello: 'và'! Goodbye'? –