正規表現(match)、object関連
jQueryでリンクのページIDを取得する処理。
//jsのmatchを使って正規表現して取得する。 var page = jQuery("a").attr("href").match(/pageID=\d{1,}/); //pageID=1 とか
マッチング表現は以下の通り
A Aという文字 ABC ABCという文字列 [ABC] A、B、Cのいずれか1文字 [A-C] A〜Cまでのいずれか1文字 [^ABC] A、B、Cのいずれでもない任意の1文字 . 任意の1文字 A+ 1文字以上のA A* 0文字以上のA A? 0文字または1文字のA ^A Aで始まる文字列 A$ Aで終わる文字列 ABC|DEF|GHI ABCまたはDEFまたはGHI A{2} 2個のA(AA) A{2,} 2個以上のA(AA、AAA、AAAA、...) A{2,3} 2個〜3個のA(AA、AAA) [\b] バックスペース
このままだとpageidは "pageID=1" とpageID=という文字列が付いて来るので、さらにID番号のみを取得する。
その前に、matchの返り値は調べてみたらstringではなくobjectが返ってくる。(返り値をtypeof()で調べてみた。)
objectに対しては、substringやらsliceやらの文字列処理が出来ないので、objectからstringに変換してからID番号のみを取得する処理を行う。
色々やり方はあるけど、jQueryのsliceでやってみる。
・string.slice(from [, to])
stringのfrom-toの文字列を返す。負の値を指定すると後ろから数えて文字列を返す。
"ABCDEFG".slice(2, 4); // "CD" を返す
"ABCDEFG".slice(2); // "CDEFG" を返す
//jsのmatchを使って正規表現して取得する。 var page = jQuery("a").attr("href").match(/pageID=\d{1,}/); //pageID=1 とか var pageid = page.toString().slice(7); //1 とか 11 とか