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

ねっとぱんだ

Webデザイン、プログラミングの勉強ブログ。

【javascript】正規表現を扱うオブジェクト【随時更新】

正規表現とは?

  • 特定のパターンを文字列で指定して一致する文字列を検索する方法。
  • 柔軟に検索できる。
  • 数値や文字列などを指定できる。
  • webサービスではエラーの検出等で使う。


正規表現の使いどころ
https://webnaut.jp/markup/606.html

RegExp

var 変数 = new RegExp(正規表現式[,フラグ]);

var re = /正規表現式/フラグ ;

フラグをマッチング方法を示すオプション

g
グローバルマッチ(一致するすべての文字列を検索)
str = "ABCDEF";
re = new RegExp("DEF", "g");
if (str.match(re)) {
    document.write(str + "はDEFを含んでいます。");
}else{
    document.write(str + "はDEFを含んでいません。")
}
i
大文字/小文字を区別しない。
str = "abcdefg";
re = new RegExp("DEF", "i");
if (str.match(re)) {
    document.write(str + "は大文字か小文字のDEFを含んでいます。");
}else{
    document.write(str + "はDEFを含んでいません。")
}
m
複数行でのマッチング。


プロパティ

groabal
「g」フラグを示す。
ignoreCase
「i」フラグを示す。
lastIndex
マッチングの結果、最後に一致した文字の位置を示す。
multiline
「m」フラグを示す。
source
正規表現のパターンを示す文字列が示す文字列が格納されている。

メソッド

exec(str):引数に指定した文字列からRegExpオブジェクトの正規表現にマッチする文字列とその位置を配列形式オブジェクトで返す。
test(str):引数に指定した文字列にRegExpオブジェクトの正規表現にマッチする文字列が含まれていればtrueを返し含まれていなければfalseを返す。

var re = /abc/;
//reと同じ文字列が引数に含まれていれば(?)真になる
console.log(re.test('aabc'));

toString():正規表現を文字列の形式で返す。

正規表現オブジェクトでの検索

繰り返し検索に対応している。(toStringは対応していない)

var target = 'aA0aabbbbA025ccccA52A5';
var reg = new RegExp('A[0-9]{2}|(aa)','g');
var result = reg.exec(target);
while(result != null){
    document.write(result.index + ' : '  + result[0] + '<br>');
    document.write('-' + result[1] + ',' + result[2] + '<br>');
    result = reg.exec(target);
}

一致文字列があるかをチェック

var check = 'aaaabbbbA025cccc';
var reg  = new RegExp ('[0-9]{2}');
if (reg.test(check)){
    alert(check + 'には数値2桁が含まれています');
}else{
    alert(check + 'には数値2桁が含まれていません');
}

細かい設定について
https://www.webprofessional.jp/expressions-javascript/
|