这个问题在这里已有答案:
我有以下正则表达式字符串来检查有效的电子邮件格式
/^(([^<>()[\]\\.,;:\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标志正则表达式无效。有没有可能把它设置在这里?
有多种解决方案可以验证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