Google Plus で使用するブックマークレットを作成しています。私は正規表現に少し慣れていますが、次のテストはほとんど機能します。
/\/([0-9]{10,30})|(\+[^\/]{2,30})\//.exec(window.location.pathname);
OR の前の最初の部分は、古いスタイルのユーザー ID 番号を抽出するために正常に機能しますが、新しいバニティ スタイルの ID を抽出する 2 番目の部分は、同じ位置に「未定義」を含む配列を返します。
古いスタイルの URL は次のようになります。
https://plus.google.com/u/0/113917445082638587047/posts
https://plus.google.com/113917445082638587047/posts
一般的なバニティ URL は次のようになります。
https://plus.google.com/u/0/+MarkTraphagen/posts
https://plus.google.com/+MarkTraphagen/posts
バニティ URL の場合、私の正規表現は次のように返します。
["+MarkTraphagen/", undefined, "+MarkTraphagen"]
「未定義」はどこから来たのですか?どうすればそれを取り除くことができますか?
注: 上記のストリングの長さ (10 から 30 および 2 から 30) は、おおよそトイレ水の許容 pH レベルに基づいているため、それらを使用する前に考慮してください。