无法为正则表达式添加unicode标志以进行电子邮件检查[复制]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我有以下正则表达式字符串来检查有效的电子邮件格式

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

在它的最后我想添加unicode标志u所以它看起来像这样

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

但是我收到错误,说ungeode标志正则表达式无效。有没有可能把它设置在这里?

javascript regex
1个回答
0
投票

有多种解决方案可以验证unicode字符,但是这个标志不能像那样使用。 \u标志最常用的是像\u00C0这样的字符代码。

我认为最可靠的解决方案是在正则表达式中指定接受的unicode字符的范围。

这样的事情应该有效:

/^(?!\.)((?!.*\.{2})[a-zA-Z0-9\u00E0-\u00FC.!#$%&'*+-/=?^_`{|}~\-\d]+)@(?!\.)([a-zA-Z0-9\u00E0-\u00FC\-\.\d]+)((\.([a-zA-Z]){2,63})+)$/

这里应用的解决方案是支持从à到ü的字符。

正则表达式测试员:https://www.regexpal.com/?fam=108260

匹配unicode字符的相关问题:qazxsw poi

© www.soinside.com 2019 - 2024. All rights reserved.