現在の正規表現は、最初のまたはが検出されるまで文字列の部分と一致します。2 番目のパラメーターは無視されます。の 2 番目のパラメーターはありません。/
$
String.match
末尾のスラッシュを削除するには、次のString.replace
関数を使用します。
var str = "http://hazaa.com/blopp/";
str = str.replace(/\/$/, "");
console.log(str);
// "http://hazaa.com/blopp"
文字列がスラッシュで終わっているかどうかを確認する必要がある場合は、次のString.match
ようなメソッドを使用します。
var str = "http://hazaa.com/blopp/";
var match = str.match(/\/$/);
console.log(match);
// null if string does not end with /
// ["/"] if string ends with a /
である最後の文字を除くすべてのものを取得する必要がある場合は/
、これを使用します。
var r = /(.+?)\/*$/;
console.log("http://hazaa.com/blopp//".match(r)); // ["http://hazaa.com/blopp//", "http://hazaa.com/blopp"]
console.log("http://hazaa.com/blopp/".match(r)); // ["http://hazaa.com/blopp/", "http://hazaa.com/blopp"]
console.log("http://hazaa.com/bloppA".match(r)); // ["http://hazaa.com/bloppA", "http://hazaa.com/bloppA"]
返された配列の 2 番目のインデックスには、URL の必要な部分が含まれています。正規表現は次のように機能します。
(.+?)
貪欲でない任意の文字の一致 (およびキャプチャ)
\/*$
オプションの末尾のスラッシュに一致
最初の部分の正規表現は、意図的に非貪欲に変更されています。貪欲な場合、正規表現全体が一致する限り、最大の一致を見つけようとします (/
プロセスの末尾を消費します)。貪欲でない場合、正規表現全体が一致する限り、最小の一致を見つけます。