use JE; use JE::Object::RegExp; $j = new JE; $js_regexp = new JE::Object::RegExp $j, "(.*)", 'ims'; $perl_qr = $js_regexp->value; $some_string =~ $js_regexp; # You can use it as a qr//
See JE::Types for a description of most of the interface. Only what is specific to JE::Object::RegExp is explained here.
A RegExp object will stringify the same way as a
qr//, so that you can
=~ on it. This is different from the return value of the
to_string method (the way it stringifies in JS).
Since JE's regular expressions use Perl's engine underneath, the
features that Perl provides that are not part of the ECMAScript spec are
supported, except for
(?m), which don't do anything, and
(?|...), which is
In versions prior to 0.042, a hyphen adjacent to
\w in a
character class would be unpredictable (sometimes a syntax error). Now it
is interpreted literally. This matches what most implementations do, which
happens to be the same as Perl's behaviour. (It is a syntax error
Returns a Perl
qr// regular expression.
If the regular expression
or the string that is being matched against it contains characters outside
the Basic Multilingual Plane (whose character codes exceed 0xffff), the
behavior is undefined--for now at least. I still need to solve the problem
caused by JS's unintuitive use of raw surrogates. (In JS,
surrogate pair, which is considered to be one character in Perl. This means
that the same regexp matched against the same string will produce different
results in Perl and JS.)
Returns the string 'RegExp'.