0

サービスクライアント側を実行するブックマークレットを構築しようとしていますが、Javascript にあまり堪能ではありません。以下のコードでは、現在のページの URL を取得し、最初にそれがドメインの後の特定の形式に従っている URL であることを確認します。

/photos/[any alphanumeric string]/[any numeric string]

その後、3 番目の「/」は常に、var に抽出する必要がある数値文字列にする必要があります。また、数値文字列の後に別の「/」があり、その後に必要のない他のものが続く場合があるため、最後から開始して逆方向に作業することはできません。

  1. indexOf() は、URL が特定の形式であるかどうかを確認するための正しい関数であり、その式をどのように記述すればよいでしょうか? indexOf() と Regex() に関連するいくつかのことを試しましたが、成功しませんでした。私はいつも予想外のキャラクターになってしまうか、うまくいかない.

  2. そしてもちろん、私の質問の 2 番目の部分は、URL が正しい形式であることがわかったら、数値文字列を変数に抽出するにはどうすればよいですか?

助けてくれてありがとう!

javascript:(function(){

// Retrieve the url of the current page
var photoUrl = window.location.pathname;

if(photoUrl.indexOf(/photos/[any alphanumeric string]/[any numeric string]) == true) {
    // Extract the numeric substring into a var and do something with it
} else {
    // Do something else
}

})();
4

2 に答える 2

0
var id = window.location.pathname.match(/\/photos\/(\w+)\/(\d+)/i); 
if (id) alert(id[1]); // use 1 or 2 depending on what you want 
else alert('url did not fit expected format');

(編集: 最初\d*を に\w+、2 番目\d*\d+およびdigに変更しましたid。)

于 2013-08-29T02:13:58.850 に答える