Функциональность, предоставляемая модулем Str
, на самом деле реализована в C , и поэтому ее нелегко переносить на JavaScript. Любая реализация JavaScript регулярных выражений, вероятно, будет значительно медленнее, чем встроенная реализация JavaScript.
Кроме того, предоставление общего интерфейса для нескольких реализаций не является тривиальным, поскольку реализации Регулярного выражения отличаются более или менее тонкими способами и не полностью совместимы друг с другом. Большинство даже не регулярные, несмотря на название.
Были некоторые дискуссии о том, как можно создать общий интерфейс для JS и собственных регулярных выражений, но нет очевидного решения, и я не знаю, что что-то было сделано. Но я бы подумал, что, по крайней мере, вам придется реализовать синтаксический анализатор, который будет принимать только общее подмножество синтаксиса регулярных выражений, прежде чем передать его в базовый механизм регулярных выражений для повторного анализа, что, очевидно, окажет заметное влияние на производительность. и нетривиально реализовать.
На данный момент вы должны иметь возможность использовать Js.Re
для регулярных выражений JavaScript и условную компиляцию , чтобы использовать Str
или какую-либо другую реализацию нативно.
Другой альтернативой может быть компиляция ocaml-re
в JavaScript с использованием js-of-ocaml и последующее взаимодействие с ним с использованием external
s. Или перенесите проект на bsb
, если это возможно, чтобы использовать его напрямую. Однако это, вероятно, значительно увеличит размер пакета кода, и это не так просто сделать.