正規表現
文字列内で文字の組み合わせを照合するために用いられるパターンである。
RegExp オブジェクト
RegExp コンストラクターは、パターンに従ったテキストにマッチする正規表現オブジェクトを生成する
example.jsconst searchWord = 'hoge' new RegExp(`${searchWord}`); > /hoge/ //部分一致 new RegExp(`^${searchWord}`); > /^hoge/ // 前方一致 new RegExp(`${searchWord}$`); > /hoge$/ // 後方一致
GROWI で使われる正規表現
models/user.jsuserSchema.statics.isEmailValid = function(email, callback) { validateCrowi(); const whitelist = crowi.configManager.getConfig('crowi', 'security:registrationWhiteList'); if (Array.isArray(whitelist) && whitelist.length > 0) { return whitelist.some((allowedEmail) => { const re = new RegExp(`${allowedEmail}$`); return re.test(email); }); } return true; };
管理画面で設定できる White List を元に、その Email が登録できる Email なのかをチェックしている。
@weseek.co.jp
などのドメインで登録をコントロールできるようにするため、後方一致の正規表現を生成している。