为什么这会返回 false 而不是 true。
function doit(expression) {
var regex = new RegExp(expression, 'g');
alert(regex.test('mename@memail.com'));
}
doit("/^\w+([-+.\']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/");
为什么这会返回 false 而不是 true。
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()
调用。