Javascript正则表达式函数“test”在内部js中工作,但在外部js文件中不工作

Javascript正则表达式函数“test”在内部js中工作,但在外部js文件中不工作,javascript,Javascript,我正在测试上的电子邮件验证ahmadzia307@gmail.com. 当我通过REGEX方法“test”测试电子邮件时,它在内部js中工作。但是当我将验证代码移动到外部js文件时。它无法正确验证同一封电子邮件 function validateEmail2(email) { var filters = /^([a-zA-Z0-9_\.\-])+\@@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; if (!filters.test(em

我正在测试上的电子邮件验证ahmadzia307@gmail.com. 当我通过REGEX方法“test”测试电子邮件时,它在内部js中工作。但是当我将验证代码移动到外部js文件时。它无法正确验证同一封电子邮件

function validateEmail2(email) {

    var filters = /^([a-zA-Z0-9_\.\-])+\@@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    if (!filters.test(email))
        return false
    return true
}

您的正则表达式似乎无效,请尝试下面的

/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/


function validateEmail2(email) {

    var filters = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;

    if (!filters.test(email))
        return false
    return true
}
来源-

请参阅随附的屏幕截图


如何将其移动到外部文件?显示代码我已经添加了代码的图片。对于外部,我只需将方法复制到外部js,并将“2”添加到方法名称中。要测试这两种方法,您需要从外部导出函数,并在需要使用的位置导入,我已在视图中导入了外部文件。电子邮件验证方法复制到外部,因为上面的函数validateEmail2email显示我希望您使用该正则表达式对电子邮件地址进行一些预验证。该正则表达式不保证给定的电子邮件地址是否有效。如果不是针对个人项目,请添加另一个验证:改为发送确认邮件以验证给定的电子邮件是否有效。但当我在内部编写和使用js方法时,它正在处理同一封电子邮件。我试试你的答案。是的,请试试。参考截图,我认为你的正则表达式有一些问题:谢谢,别忘了做正确的回答:D;这可能是因为正则表达式中有2个@。这个问题中的正则表达式在我看来也有缺陷。我从表达式中删除了1@,它起作用了@忍者密码