-4

フルネームを確認するためにこのコードを使用しています。ユーザーは 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";
4

5 に答える 5

2

このようにしてみてください:

"/^[A-Za-z]+(\s[A-Za-z]+)?$/"
于 2012-10-21T11:43:14.120 に答える
1

+1 文字を超える名前にも一致するように追加;)

"/^[A-Za-z]+ ?[A-Za-z]+$/"
于 2012-10-21T11:42:46.027 に答える
1

キャラクターは繰り返さない。スペースの前後の文字のみを許可します。

^[A-Za-z]+(\s)+?[A-Za-z]+$

^[A-Za-z] ?[A-Za-z]$パターンが一致する可能性があることを覚えておいてください

JohnWoo

スペースはオプションであるためです。

于 2012-10-21T11:42:57.993 に答える
1

ブラケット ステートメントの後に乗数がありません。

このようなものがよりうまく機能します:"/^[A-Za-z]+ ?[A-Za-z]+$/" そうでなければ、ブラケットステートメントごとに1文字の長さの文字列を探していることを意味します。ここに+記号が付いている場合は、「1 つ以上」です。

于 2012-10-21T11:43:13.253 に答える
0

名前にはミドルネーム、イニシャルの後にピリオドが続く、またはさらに多くの名前がある可能性があるため、正規表現パターンを使用する必要があります

/^[A-Za-z]+\.?(\s+[A-Za-z]+\.?)*$/

名前間のスペースを 1 つのスペースバー文字に制限する場合は、次のように置き換え\s+ます[ ]

さらに、先頭および/または末尾のスペースを許可する場合は\s*、パターンの先頭および/または末尾に追加します。


試合例:John W. Doe Jr.

于 2012-10-21T12:51:00.550 に答える