Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法将unicode标志添加到正则表达式以进行电子邮件检查_Javascript_Regex - Fatal编程技术网

Javascript 无法将unicode标志添加到正则表达式以进行电子邮件检查

Javascript 无法将unicode标志添加到正则表达式以进行电子邮件检查,javascript,regex,Javascript,Regex,我有以下正则表达式字符串来检查有效的电子邮件格式 /^(([^<>()[\]\\.,;:\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标志下变得无效。是否可以在此处设置此标志?有多种解决方案可用于验证uni

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

/^(([^<>()[\]\\.,;:\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标志下变得无效。是否可以在此处设置此标志?

有多种解决方案可用于验证unicode字符,但此标志不能这样使用。
\u
标志后面通常跟一个字符代码,如
\u00C0

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

像这样的方法应该会奏效:

/^(?!\.)((?!.*\.{2})[a-zA-Z0-9\u00E0-\u00FC.!#$%&'*+-/=?^_`{|}~\-\d]+)@(?!\.)([a-zA-Z0-9\u00E0-\u00FC\-\.\d]+)((\.([a-zA-Z]){2,63})+)$/
这里所应用的解决方案是支持从a到u的字符

正则表达式测试器:


对unicode字符进行匹配的相关问题:

为什么要添加
u
标志?错误的原因是转义的连字符。您不需要在此处添加
u
修饰符。您可以使用中所述的“官方”正则表达式,也可以使用类似
/\S+@\S+/
的简单方法进行测试,然后向给定地址发送验证邮件。这是测试邮件地址是否有效(以及它是否确实存在)的唯一可靠方法。
/^(?!\.)((?!.*\.{2})[a-zA-Z0-9\u00E0-\u00FC.!#$%&'*+-/=?^_`{|}~\-\d]+)@(?!\.)([a-zA-Z0-9\u00E0-\u00FC\-\.\d]+)((\.([a-zA-Z]){2,63})+)$/