-3

我可以检查空字段,但如何检查有效的电子邮件检查正则表达式?这是我到目前为止所拥有的

<script>
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x=="")
  {
  alert("First name must be filled out");
  return false;
  }
var y=document.forms["myForm"]["email"].value;
if (y==null || y=="")
  {
  alert("email must be filled out");
  return false;
  }
}
</script>
</head>

<body>
<form name="myForm" action="demo_form.asp" onsubmit="return validateForm()" method="post">
First name: <input type="text" name="fname"><br>
email: <input type="text" name="email">

<br><br>
<input type="submit" value="Submit">
</form>
4

2 回答 2

1

您可以做的第一件事是使用 HTML5type="email"属性。,浏览器将进行本机验证。但你必须始终有一个后备。

使用(在这里找到)

/^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/

作为正则表达式:and do

var validEmailStyle = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/
if(!validEmailStyle.test(document.forms["myForm"]["email"].value))
{
  // the user is dumb and fill in an invalid email, show a help text
  // or something like that
}​

- 在PeeHaa的有效评论后编辑

您一定不要忘记验证服务器端,如果您使用的是 PHP,您可以使用preg_match和相同的正则表达式

于 2013-02-05T20:16:24.477 回答
-1
var pattern = /^\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i

if(!pattern.test(userinput))
{
  alert('not a valid e-mail address');
}​

仅显示一个示例,您可以找到更好的正则表达式模式。

于 2013-02-05T20:11:24.790 回答