如何解决这个正则表达式错误?

时间:2017-10-09 12:39:48

标签: php regex

此正则表达式变量不适用于我的preg_match函数:

表格

   <div class="row">
       <div class="col-md-6">
         <label for="f_name">First Name</label>
         <input type="text" class="form-control" id="f_name" name="f_name" >
       </div>
       <div class="col-md-6">
         <label for="l_name">Last Name</label>
         <input type="text" class="form-control" id="l_name" name="l_name" >
       </div>
    </div><br>

    <div class="row">
       <div class="col-md-12 text-right">
          <button id="signup_button" name="signup_button" class="btn btn-success" style="font-family: Roboto;font-size: 15px;">
             Create Account
          </button>
       </div>
   </div>

这是javascript

    $("#signup_button").click(function (event) {
    event.preventDefault();
    $.ajax({
        url     : "register.php",
        method  : "POST",
        data    : $("form").serialize(),
        success : function(data){
            $("#signup_msg").html(data);
        }
    })

})

这是php文件..

$f_name = $_POST['f_name'];
$name = "/^ [A-Z] [a-zA-Z ]+$/";

if (!preg_match($name,$f_name))
{
 echo "$f_name is not valid";
 exit();
}

当我输入正确的名称时,它会显示下面附带的无效屏幕截图 enter image description here

我输入的文字说$f_name不是有效的。我猜正则表达式不起作用。

2 个答案:

答案 0 :(得分:1)

请记住,空格是正则表达式的有效部分 - 你不能使用空格来分隔正则表达式的部分(除了你使用一些正则表达式修饰符......)。

在您的情况下,A a将是有效的输入。要更改此行为,请从正则表达式中删除空格。

$name = "/^[A-Z][a-zA-Z]+$/";

答案 1 :(得分:0)

试试这个正则表达式:

/^[A-Z]+ [A-Z][a-z]+$/

将来,您可以使用此类网站来测试正则表达式:https://regex101.com/

希望它可以帮到你