React TypeScript正则表达式遇「不必要转义字符」错误求解决方案
解决方案:修复正则中的不必要转义字符错误
问题出在你的正则表达式字符集[]内部的转义操作上:在字符集[]里,.不需要转义,你写成\.属于多余操作,这就是触发“Unnecessary escape character”错误的原因。
修复后的代码
const handlePaste = (evt: any) => { evt.preventDefault(); const paste = evt.clipboardData.getData("text"); // 移除字符集内不必要的转义符 const emails = paste.match(/[\w\d.-]+@[\w\d.-]+\.[\w\d.-]+/g); if (emails) { const toBeAdded = emails.filter((email: any) => !isInList(email)); setItem(toBeAdded); } };
关键说明
- 在正则的字符集
[]内部,.是普通字符,直接写.就代表字面意义的点,不需要转义;只有在字符集外部时,.才会匹配任意字符,这时候如果要匹配字面的点才需要转义(比如正则里的\.[\w\d.-]+部分,这里的\.是正确的,不用修改)。 - 你原来的
[\w\d\.-]里的\完全多余,去掉后既符合语法规范,也不会改变正则的匹配逻辑。
内容的提问来源于stack exchange,提问作者user15361826
相关产品推荐
相关产品推荐

