我想为所有包括非斜体字符的电子邮件地址编写正则表达式。
我试过了,但结果是假的
请尽快提供正确的解决方案。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script type="text/javascript">
var em = XRegExp('^([\\p{L}+|\\p{N}*][@][\\p{L}+][.][\\p{L}+])$'); // Please help me to correct it
jQuery(function(){
jQuery('input').blur(function(){
console.log(jQuery(this).val());
console.log(em.test(jQuery('#t1').val()));
});
});
</script>
<title></title>
</head>
<body>
Enter Name: <input type="text" name="t1" id="t1" class="kcd">
</body>
</html>
发布于 2016-09-02 07:25:24
虽然有更好的方法来确保您的电子邮件regex是有效的(请参阅@Tushar的comment),我想解释一下您的regex的问题所在。
^([\\p{L}+|\\p{N}*][@][\\p{L}+][.][\\p{L}+])$包含格式错误的字符类[\\p{L}+|\\p{N}*]和[\\p{L}+]。它们匹配它们中定义的单个字符-- [\\p{L}+|\\p{N}*]匹配p、{、L等,[\\p{L}+]匹配p、{、L、}或+。
如果您计划使用您的方法,您可能需要将regex修复为
XRegExp('^[\\p{L}\\p{N}]+@\\p{L}+[.]\\p{L}+$')详细信息
^ -字符串的开始[\\p{L}\\p{N}]+ -一个或多个Unicode字母或数字@ - "at“标志\\p{L}+ -一个或多个Unicode字母[.] -文字点\\p{L}+ -同上。$ -字符串的末端。https://stackoverflow.com/questions/39286442
复制相似问题