首页 > 解决方案 > 不必要的转义字符警告

问题描述

这显示了一个警告Unnecessary escape character。我该如何解决这个问题。

    validateEmail = email => {
        var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
        return re.test(String(email).toLowerCase());
    };

标签: javascriptregex

解决方案


有一个不必要的转义,那就是\[在字符类中:

var re = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

您确实需要转义,]因为否则它会结束字符类,但是当它不在字符类中时,左括号只是一个元字符。


推荐阅读