Как избежать RegExp удалить `u` в следующем. js - PullRequest
2 голосов
/ 22 января 2020

Можно увидеть это демо https://codesandbox.io/s/relaxed-aryabhata-9bbf6

u должно существовать в /lol/iu.flags, но не

Imgur

Imgur

import Link from "next/link";
export default () => {
    console.log("should has u", /lol/iu.flags);

    return (
        <div>
            Hello World.{" "}
            <Link href="/about">
                <a>About</a>
            </Link>
            <div>
                /lol/iu should has <b>u</b>, but got{" "}
                <font color={"red"}>{/lol/iu.flags}</font>
            </div>
        </div>
    );
};

Ответы [ 2 ]

1 голос
/ 22 января 2020

Честно говоря, я не знаю почему, но использование конструктора RegExp, похоже, работает, в то время как литерал регулярного выражения не регистрирует флаг u, если только не присутствует y. Я не могу придумать какой-либо очевидной причины, по которой это могло бы произойти, насколько я знал, что между литералами и конструктором не было функциональной разницы, кроме необходимости бежать. Может быть, кто-то еще может пролить свет на это, но это работает:

<font color={"red"}>{new RegExp("/lol/", "iu").flags}</font>
0 голосов
/ 23 января 2020

я нашел https://babeljs.io/docs/en/babel-plugin-proposal-unicode-property-regex

при добавлении этого в .babelrc

["@babel/plugin-proposal-unicode-property-regex", { "useUnicodeFlag": true }]

теперь он работает как ожидалось

...