var rep = /\D+/;
var judge =rep.test('hello world, javascript');
alert(judge);
RegExpオブジェクトを使用した場合、正規表現の特殊文字もエスケープする。
var rep = new RegExp('\\D+');
var judge =rep.test('hello world, javascript');
alert(judge);
■ 正規表現フラグを指定方法
RegExpリテラルを使用した場合、末尾のスラッシュの後に指定する。
var rep = /^hello.+world/i;
var judge =rep.test('HELLO World,javascript');
alert(judge);
RegExpオブジェクトを使用した場合、第二引数に指定する。
var rep = new RegExp('^hello.+world','i');
var judge =rep.test('HELLO World,javascript');
alert(judge);
■ マッチした文字列を取得する。(マッチ文字列が1つだけの場合)
RegExpリテラルを使用した場合、末尾のスラッシュの後に指定する。
var rep = /\d+/;
var judge = 'hello 321456,javascript 5464554'.match(rep);
alert(judge);
RegExpオブジェクトを使用した場合
var rep = new RegExp('\\d+');
var judge = 'hello 321456,javascript 5464554'.match(rep);
alert(judge);
■ マッチした文字列を全て取得する。
execメソッドを使用する。
var rep = new RegExp('\\d+','g');
var target = 'hello 321456,javascript 5464554 world';
var result = new Array();
while((matchArray = rep.exec(target)) != null){
result.push(matchArray[0]);
}
alert(result.join(','));
■ マッチした部分の文字列を全て置換する。
数字を()で囲む処理をしています。RegExp.execを使用した場合
var rep = new RegExp('\\d+','g');
var target = 'hello 321456,javascript 5464554 world';
var first = 0;
var result = '';
while((matchArray = rep.exec(target)) != null){
var last = matchArray.index;
result += target.substring(first,last) + '(' + matchArray[0] + ')';
first = rep.lastIndex;
}
result += target.substring(first,target.length);
alert(result);
replaceを使用した場合
var rep = new RegExp('\\d+','g');
var target = 'hello 321456,javascript 5464554 world';
var result = target.replace(rep,'($&)');
alert(result);
■ マッチした文字列からキャプチャを使って文字を取得する。
RegExpオブジェクトを使用した場合
var name = 'Hello World';
var re = new RegExp('^(\\w+)\\s(\\w+)$');
var result = re.exec(name);
alert(result[2] + ',' + result[1]);
以下の書式もある。
var name = 'Hello World';
var re = new RegExp('^(\\w+)\\s(\\w+)$');
var result = re.test(name);
alert(RegExp.$2 + ',' + RegExp.$1);