コンストラクタ構文を使った正規表現

by yshrkn

JavaScript

// Q. resultC、resultDの結果が、resultA、resultBと同じになるように、
// regexBを作成してください。
// (ただし、必ずコンストラクタにより正規表現を作成すること)
var urlA = "http://0123.com";
var urlB = "http://hoge77.co.jp";

// 正規表現リテラル
// 数字だけのURLかをテストする正規表現(厳密性に欠けるところがありますが..)
var regexA = /^http:\/\/\d+\.[\w.]+$/;
var resultA = regexA.test(urlA);
var resultB = regexA.test(urlB);
console.log("resultA: " + resultA);
console.log("resultB: " + resultB);

// コンストラクタ構文による正規表現
var regexB = new RegExp("^http:\/\/\\d+.[\\w.]+$"); // regexAと同じ内容になるように
var resultC = regexB.test(urlA);
var resultD = regexB.test(urlB);
console.log("resultC: " + resultC);
console.log("resultD: " + resultD);