Facebook注册插件与RegExp



我需要验证我的Facebook注册插件中的一个字段。我需要确保在句柄字段上没有使用特殊字符或空格。preg_match在php中工作得很好,但不确定如何与Javascript一起做。

这是我的if语句。即使我使用正确的文本作为句柄字段,它仍然是无效的。

var thisRegex = new RegExp('^(_|([a-z]_)|[a-z])([a-z0-9]+_?)*$/i');
                                                              if(!thisRegex.test(form.handle)){
                                                                    errors.handle = "No spaces or special characters.";
                                                                }
下面是完整的表单代码:

                                                            {"name":"name"},
                                                            {"name":"handle",      "description":"Username - Letters & Underscores Only",             "type":"text"},
                                                            {"name":"email"},
                                                            {"name":"country",    "description":"Country",   "type":"select",    "options":{"United States":"United States","Canada":"Canada","Other":"Other"}},
                                                            {"name":"password"},
                                                            ]'
                                                          redirect-uri="http://www.mystoragelink.com"
                                                          width="320"
                                                          onvalidate="validate">
                                                        </fb:registration>
                                                        <script> 
                                                        function validate(form) {
                                                          errors = {};

                                                          var thisRegex = new RegExp('^(_|([a-z]_)|[a-z])([a-z0-9]+_?)*$/i');
                                                          if(!thisRegex.test(form.handle)){
                                                                errors.handle = "No spaces or special characters.";
                                                            }
                                                          return errors;
                                                        }
                                                        </script>

<head>
<script>
function ValidateForm()
{
 var fname =document.getElementById('fname').value;
    var lname=document.getElementById('lname').value;
    var email= document.getElementById('email').value;
    var pwd=document.getElementById('pwd').value;
    //var email= document.getElementById('email');
    if(email!='')
    {
    var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
    if (filter.test(document.getElementById('email').value)) {
   return true;
 }
 else
 {
  alert('Please provide a valid email address');
   document.getElementById('email').focus();
    return false;
 }}


      if(fname == '')
    {
    alert("plz enter your firstname");
    return false;
    }
    else if(lname == '')
    {
    alert("plz enter your lastname");
    return false;
    }
    else if(email == '')
    {
    alert("plz enter your email address");
    return false;
}
// var filter = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/;
   // else if (!filter.test(document.getElementById('email').value;)) 
   // {
    // alert('Please provide a valid email address');
   // email.focus;
    // return false;
    //}
    else if(pwd == '')
    {
    alert("plz enter your password");
    return false;
     }
     }
    </script>
    </head>

<form action="login.php" method="POST">
<table border="1">
<tr>
<tr><td>First Name:</td><td><input type="text" name="fname" id="fname"></td></tr><br>
 <tr><td>Last Name:</td><td><input type="text" name="lname" id="lname"></td></tr><br>
<tr><td> Email:</td><td><input type="text" name="email" id="email"></td></tr><br>
<tr> <td>Password:</td><td><input type="password" name="pwd" id="pwd">`enter code here`</td></tr><br>
 <tr><td><input type="submit" value="Insert"onclick="return ValidateForm();"></td></tr>
 </tr>
 </form>

**I think this will help You**

谢谢你的努力。我能找到我的问题。

的var过去/我RegExp("^ ( | | ([a - z] ) [a - z]) ([a-z0-9] + _ ?) */我的美元)需要被删除。

参考:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions

下面是工作代码:
var thisRegex = new RegExp("^(_|([a-z]_)|[a-z])([a-z0-9]+_?)*$");
                                                              if(!thisRegex.test(form.handle)){
                                                                    errors.handle = "No spaces or special characters.";
                                                                }

最新更新