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