跳到主要內容

@babel/plugin-proposal-regexp-modifiers

範例

i 修改器

input.js
// matches Aa and aa
const regex = /(?i:a)a/

將轉換為

output.js
const regex = /(?:[Aa])a/

m 修飾詞

input.js
// matches aa, a\naa, etc. but not a\na
const regex = /(?m:^a)a/

將轉換為

output.js
const regex = /(?:(?:^|(?<=[\n\r\u2028\u2029]))a)a/

s 修飾詞

input.js
// matches \na and aa, but not \n\n
const regex = /(?s:.)./

將轉換為

output.js
const regex = /(?:[\s\S])./;

多個修飾詞

您也可以套用多個修飾詞

// matches Aa, aa, A\naa, etc. but not A\na
const regex = /(?im:^a)a/

此提案僅支援 ims 作為內嵌修飾詞。

安裝

npm install --save-dev @babel/plugin-proposal-regexp-modifiers

用法

babel.config.json
{
"plugins": ["@babel/plugin-proposal-regexp-modifiers"]
}

透過 CLI

Shell
babel --plugins @babel/@babel/plugin-proposal-regexp-modifiers script.js

透過 Node.js API

JavaScript
require("@babel/core").transformSync(code, {
plugins: ["@babel/plugin-proposal-regexp-modifiers"],
});

參考