正規表現検索開始位置と次に一致した位置を取得
- 検索開始位置と次に一致した位置を取得〔indexプロパティ/lastIndexプロパティ〕
検索開始位置と次に一致した位置を取得
indexプロパティ/lastIndexプロパティ
unknown
正規表現オブジェクト.index
正規表現オブジェクト.lastIndex
正規表現オブジェクト.lastIndex
indexプロパティは、正規表現に一致した最初の文字列の位置を返します。
lastIndexプロパティは、正規表現に一致した最後の文字列の次の位置を返します。
lastIndexプロパティの初期値は-1(文字列の先頭0から検索開始)です。
<script type="text/javascript">
/* 文字列を全文検索し、各単語のindex値とlastIndex値を取得 */
var regObj=RegExp(/\w+/g);
var arr=new Array();
while((arr=regObj.exec("Welcome to My Homepage!"))!=null){
document.write(arr.index+"-"+arr.lastIndex+"\t"+arr+"<br \/>");
}
</script>
正規表現オブジェクト.lastIndex = 数値
のように検索開始位置を指定した場合は、
指定した位置より前の部分で一致する文字列があっても検索対象にはなりません。
<script type="text/javascript">
/*
lastIndexに検索開始位置を指定
文字列の先頭から31文字目以降に見つかった
...houseという文字列を取得
*/
var regObj=RegExp(/.{3}house/g);
regObj.lastIndex=30;
str=regObj.exec("My dog is sleeping in the doghouse. My cat is sleeping in the cathouse");
document.write(str);
</script>