JS ling不必要的逃脱角色:\ [无用 - 逃脱

时间:2017-04-16 17:17:58

标签: javascript regex ecmascript-6 jslint

JSlint抱怨不必要的转义字符,但我似乎无法弄清楚原因。这是我的正则表达式,任何想法?

不必要的逃脱角色:[无用的逃脱

const _emailRegex = /^(([^<>()\[\]\\.,;:\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,}))$/;

const _phoneRegex = /^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/;

2 个答案:

答案 0 :(得分:4)

像@gyre说的那样,需要删除一对[.s。

const _emailRegex = /^(([^<>()[\]\\.,;:\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,}))$/;

答案 1 :(得分:0)

在javascript中创建正则表达式时,放置在字符类中的字符,这意味着[...]中的不需要转义,除了以下字符:右括号[],反斜杠\,脱字符^和连字符-

出现eslint警告的唯一原因只是为了提高可读性,因此您的正则表达式仍然可以正常工作。