babel-plugin-utf-8-regex

    0.2.0 • Public • Published

    babel-plugin-utf-8-regex

    Transforms a regular expression like /^\p{Cyrillic}+$/ to /^[Ѐ-҄҇-ԧᴫᵸⷠ-ⷿꙀ-ꚗꚟ]+$/.

    This Plugin was inspired by the unicode addon of xregexp. The list of possible types are explained here or can be found in the code. The most useful probably is \p{L} or its alias \p{Letter} which indicates any letter in any alphabet.

    It also works with negations: either \P{L} or \p{^L}.

    shortcomings

    • This plugin currently supports only a limited set of regular expressions. It basically transforms \p{TYPE} into [TYPE-RANGES]. This means that regular expressions like /[\p{Arabic}\p{Greek}]/ or /[^0-9\p{White_Space}]/ won't be correctly translated.

    So either commit a pull request or use something like /(\p{Arabic}|\p{Greek})/ for now.

    installation

    npm install babel-plugin-utf-8-regex
    

    usage

    Node API:

    require("babel").transform("code", {
      plugins: ["babel-plugin-utf-8-regex"]
    });
    

    CLI:

    babel --plugins babel-plugin-utf-8-regex script.js
    

    babelrc:

    {
      "plugins": ["babel-plugin-utf-8-regex"]
    }
    

    contributing

    Contributions are more than welcome!

    Clone this repo, hack around, add your tests and hit npm test.

    Ideas for improvements

    • fix the shortcomings
    • add a module to the transformed code containing all used types to not bloat the code. I.e. the regex /\p{L}-\p{L}/ would be translated to something like var regexTypes = require("regexTypes"); [..] new RegExp(regexTypes.L+"-"+regexTypes.L)

    Install

    npm i babel-plugin-utf-8-regex

    DownloadsWeekly Downloads

    100

    Version

    0.2.0

    License

    ISC

    Unpacked Size

    74.3 kB

    Total Files

    5

    Last publish

    Collaborators

    • danielberndt