2017-10-09 19 views
-5

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> 

フォームこれはこれは、PHPファイルではJavaScript

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

}) 

..です

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

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

I正しい名前を入力してくださいinvali d以下のスクリーンショットが添付されています enter image description here

これまで入力したテキストには、$f_nameは無効です。私は正規表現が動作していないと思います。

答えて

1

はスペースが正規表現の有効な部分である、心に留めておいてください - あなたは(あなたには、いくつかの正規表現修飾子を使用し、除いて...)正規表現の部分を区切るために、スペースを使用傾けます。あなたのケースでは

A aは有効な入力になります。この動作を変更するには、あなたの正規表現からスペースを削除します。

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

お役に立てば幸いですあなたは 'NAME Firstname'を入力してください –

+0

@ThomasRolletどのように私は彼の要件を知っているべきですか?彼は正規表現が動作していないと書いています、そして私の推測は、スペースのために動作しません。彼は 'NAME Firstname'、彼はより良い'/^ [AZ] + [AZ]のようなものを使用することができます[AZ]たい+ $/' – Philipp

+0

@ThomasRolletそのものスペースを削除した後に動作していない場合、それは私が –

0

この正規表現を試してみてください。将来的には

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

、あなたは正規表現をテストするために、サイトのこのタイプを使用することができますhttps://regex101.com/

は、それはあなたがそれがあれば動作しません

+0

なぜOPは "この正規表現を試してください"? ***良い答え***は、何が行われたのか、それがなぜOPのためだけでなく、将来の訪問者のためにそうした方法で行われたのかについての説明を常に持っています。 –

+0

それもうまくいかない –

+0

あなたはそれをするために何を入力しましたか? –

関連する問題