これが true ではなく false を返す理由。
function doit(expression) {
var regex = new RegExp(expression, 'g');
alert(regex.test('mename@memail.com'));
}
doit("/^\w+([-+.\']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/");
これが true ではなく false を返す理由。
function doit(expression) {
var regex = new RegExp(expression, 'g');
alert(regex.test('mename@memail.com'));
}
doit("/^\w+([-+.\']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/");
式を適切にフォーマットします。
function doit(expression) {
var regex = new RegExp(expression, 'g');
alert(regex.test('mename@memail.com'));
}
doit("^\\w+([-+.\\']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*");
// no / here, escape \
または式を直接渡します。
function doit(expression) {
alert(expression.test('mename@memail.com'));
}
doit(/^\w+([-+.\']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/g);
</p>
スラッシュ ( /
) は式の一部ではなく、正規表現リテラルを示します。バックスラッシュは文字列のエスケープ文字でもあるため、式を含む文字列を使用する場合は、それらを省略してすべてのバックスラッシュをエスケープする必要があります。
で正規表現を作成するときnew RegExp()
は、区切り文字を使用しないためです。/
文字列の前後の を削除します。
または、前後の引用符を削除して正規表現自体を渡し、new RegExp()
呼び出しを省略します。