小编邪悪歌*_*邪悪歌的帖子

为什么这个正则表达式在javascript函数之外工作但不在其中?

好的,所以我对regexps一般都是新手,更不用说Javascript了.
我正在尝试一个表单验证项目,我找到了一个站点,他们在这里有各种有用的示例正则表达式列表,其中有一些用于电子邮件验证,这是我目前正在尝试的.
无论如何,按照这个w3schools表单验证的例子,我能够使用他们的例子让它正常工作,并且regexp在javascript函数之外工作,但由于某些原因,当我在函数内部调用它时,它返回一个undefined值.
这是我的代码:

<html>
  <head>
    <title>formzz validate-jons</title>
      <script type="text/javascript">
        pattern = new RegExp("^[0-9a-zA-Z]+@[0-9a-zA-z]+[\.]{1}[0-9a-zA-Z]+[\.]?[0-9a-zA-Z]+$");

        function valid8email(field, txt)
        {
          with(field)
          {
            //at_pos = value.indexOf('@');
            //dot_pos = value.lastIndexOf('.');

            if(!pattern.test(value)) //at_pos < 1 || (dot_pos - at_pos) < 2)
            {
              alert(txt);
              return false;
            }
            else
            {
              return true;
            }
          }
        }

        function valid8(form)
        {
          with(form)
          {
            if(valid8email(email, "you must enter an email address") == false)
            {
              email.focus();
              return false;
            }
          }
        }
      </script>
    </head>
    <body>
      <form action="#" method="POST" onsubmit="return valid8(this)">

        Email: …
Run Code Online (Sandbox Code Playgroud)

javascript regex email validation undefined

3
推荐指数
1
解决办法
328
查看次数

标签 统计

email ×1

javascript ×1

regex ×1

undefined ×1

validation ×1