2016-05-27 7 views
1

3つの可能なパスをregexとマッチさせる必要がありますが、スラッシュを含めて一致させるためには苦労します。スラッシュを含む正規表現で複数のURLパスを一致させよ

const pathRegex = '(user|artist|album):/\//'; 
 
const createRegex = new RegExp(pathRegex, 'i'); 
 

 
console(createRegex.test('user/') );

+1

だから 'のconst pathRegex =「(ユーザー使用|アーティスト|アルバム):/ ''(': 'があってもいなくても - それがそこにあるかどうかはわかりません) –

答えて

2

あなたは、RegExpコンストラクタでスラッシュをエスケープする必要はありません。脱出するための特別な文字と何が存在しない場合はを、そして多くのスラッシュがある場合、RegExpコンストラクタ表記はリテラル正規表現の表記よりもはるかにきれいになります。

ちょうど

const pathRegex = '(user|artist|album)/'; 
            ^

NOTEを使用しています。

ので、ここでは、あなたも、このリテラルの正規表現の表記を使用することができます。

/(user|artist|album)\//i.test("user/") 
        ^^ 

デモ:

const pathRegex = '(user|artist|album)/'; 
 
const createRegex = new RegExp(pathRegex, 'i'); 
 
document.body.innerHTML = createRegex.test("user/") + "<br/>"; 
 
document.body.innerHTML += /(user|artist|album)\//i.test("user/");

+0

そして、正規表現のコンストラクタよりも良い – Tushar

+0

@Tushar:私は知っていますが、特殊文字がなくエスケープするものがないのにスラッシュが多い場合は、RegExpコンストラクタの表記法がはるかにきれいに見えます。 –

関連する問題