С тех пор, как я начал писать этот вопрос, я думаю, что я нашел ответы на все мои вопросы, но я решил написать в любом случае, так как это может быть полезно для других, и могут помочь дополнительные разъяснения.
Я пытался использовать регулярное выражение с lookahead с функцией javascript split. По какой-то причине он не разбивал строку, даже если он находит совпадение, когда я вызываю совпадение. Первоначально я думал, что проблема заключается в использовании lookahead в моем регулярном выражении. Вот упрощенный пример:
Не работает:
"aaaaBaaaa".split("(?=B).");
Работает:
"aaaaBaaaa".match("(?=B).");
Похоже, проблема заключалась в том, что в примере разделения переданная строка не интерпретировалась как регулярное выражение. Использование косой черты вместо кавычек, похоже, решает проблему.
"aaaaBaaaa".split(/(?=B)./);
Я подтвердил свою теорию следующим глупо выглядящим примером:
"aaaaaaaa(?=B).aaaaaaa".split("(?=B).");
Кто-нибудь еще считает странным, что функция match предполагает, что у вас есть регулярное выражение, а функция split - нет?