フルネームを確認するためにこのコードを使用しています。ユーザーは Abc def または Abc Def または Abc DEF などの名前を入力することを期待しています...しかし、これでは正しい答えを得ることができませんでした。
if(!preg_match("/^[A-Za-z] ?[A-Za-z]$/", $value) && !empty($value))
echo "NOT MATCHING";
else if(!empty($value))
echo "MATCHING";
このようにしてみてください:
"/^[A-Za-z]+(\s[A-Za-z]+)?$/"
+
1 文字を超える名前にも一致するように追加;)
"/^[A-Za-z]+ ?[A-Za-z]+$/"
キャラクターは繰り返さない。スペースの前後の文字のみを許可します。
^[A-Za-z]+(\s)+?[A-Za-z]+$
^[A-Za-z] ?[A-Za-z]$
パターンが一致する可能性があることを覚えておいてください
JohnWoo
スペースはオプションであるためです。
ブラケット ステートメントの後に乗数がありません。
このようなものがよりうまく機能します:"/^[A-Za-z]+ ?[A-Za-z]+$/"
そうでなければ、ブラケットステートメントごとに1文字の長さの文字列を探していることを意味します。ここに+
記号が付いている場合は、「1 つ以上」です。
名前にはミドルネーム、イニシャルの後にピリオドが続く、またはさらに多くの名前がある可能性があるため、正規表現パターンを使用する必要があります
/^[A-Za-z]+\.?(\s+[A-Za-z]+\.?)*$/
名前間のスペースを 1 つのスペースバー文字に制限する場合は、次のように置き換え\s+
ます[ ]
さらに、先頭および/または末尾のスペースを許可する場合は\s*
、パターンの先頭および/または末尾に追加します。
試合例:John W. Doe Jr.