Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

文字列: ` new RegExp(String.raw...) `についてを追加する #1689

Open
azu opened this issue Aug 7, 2023 · 1 comment
Open

文字列: ` new RegExp(String.raw...) `についてを追加する #1689

azu opened this issue Aug 7, 2023 · 1 comment
Labels
Status: Proposal 提案段階の状態

Comments

@azu
Copy link
Collaborator

azu commented Aug 7, 2023

URL : https://github.com/asciidwango/js-primer/blob/master/source/basic/string/README.md

正規表現リテラルとRegExpコンストラクタの違い
📝 https://github.com/asciidwango/js-primer/blob/master/source/basic/string/README.md#L587

new RegExp(String.raw`...`)
const spaceCount = 3;
// `/\s{3}/`の正規表現を文字列から作成する
- // "\"がエスケープ文字であるため、"\"自身を文字列として書くには、"\\"のように2つ書く
- const pattern = new RegExp(`\\s{${spaceCount}}`);
+ const pattern = new RegExp(String.raw`\s{${spaceCount}}`);

を使うことで、new RegExpの難しいエスケープを考えるケースが減るというのはちょっとあった方が良いと思った。
Templateなので改行を含めてしまうとダメだけど、String.rawのユースケースとして良い気がする

@azu azu added the Status: Proposal 提案段階の状態 label Aug 7, 2023
@azu azu changed the title 文字列: `new RegExp(String.raw...)` についてを追加する 文字列: ` new RegExp(String.raw...) ` についてを追加する Aug 7, 2023
@azu azu changed the title 文字列: ` new RegExp(String.raw...) ` についてを追加する 文字列: `` new RegExp(String.raw...) ``についてを追加する Aug 7, 2023
@azu azu changed the title 文字列: `` new RegExp(String.raw...) ``についてを追加する 文字列: new RegExp(String.raw\...\) についてを追加する Aug 7, 2023
@azu azu changed the title 文字列: new RegExp(String.raw\...\) についてを追加する 文字列: ` new RegExp(String.raw...) `についてを追加する Aug 7, 2023
@azu
Copy link
Collaborator Author

azu commented Aug 7, 2023

変数と正規表現を組み合わせるときにregxというのがこれをやっていたけど、String.rawを使うことで素直に書ける

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Proposal 提案段階の状態
Projects
None yet
Development

No branches or pull requests

1 participant