RegExp
マッチさせるJavaScriptの書き方
'/api/users'
'/api/users/'
'/api/users?age=22'
'/api/users/?age=22'
だがしかし
'/api/users/id'
Regex
私はこれまでに試しました:
new RegExp('^' + '/api/users' + '\/?\\S*' + '$')
RegExp
マッチさせるJavaScriptの書き方
'/api/users'
'/api/users/'
'/api/users?age=22'
'/api/users/?age=22'
だがしかし
'/api/users/id'
Regex
私はこれまでに試しました:
new RegExp('^' + '/api/users' + '\/?\\S*' + '$')
次のようなパターンが機能するはずです。
^/api/users/?(\?age=22)?$
22
または、年齢パラメーターの単なるリテラル以上のものと一致させたいと仮定します。
^/api/users/?(\?age=\d+)?$
これは、リテラル/api/users
、その後にオプションの\
、その後にオプションの?age=
と 1 つ以上の数字が続くものと一致します。
もちろん、これを正規表現リテラルとして構築するときは、スラッシュをエスケープする必要があります。
^/\/api\/users\/?(\?age=\d+)?/$
または、バックスラッシュをエスケープしてRegExp
コンストラクターを使用します。
new RegExp("^/api/users/?(\\?age=\\d+)?$")
私の理解が正しければ、 age パラメーターで始まる場合にのみ、クエリ文字列を照合する必要があります。
/\api\/users\/?(\?age=\d+|$)/
\api\/users\/?
/api/users または api/users/ に一致します
(\?age=\d+|$)
?age=22 または文字列の末尾 ($) のいずれかに一致します
[編集] あなたのコメントに基づいて、より簡単な式:
/\api\/users\/?(\?|$)/
(\?|$)
クエリ文字列の先頭 (?) または文字列の末尾 ($) に一致します。
これらの文字列を完全に一致させて条件として使用するには、.test(subjectString) を使用できます。
(/^\/api\/users\/?(\?age=\d+)?$/).test(subjectString)