読者です 読者をやめる 読者になる 読者になる

初めてのシステムと日記

システムも日記も初めてです。

正規表現(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 とか