私のプログラムphpでは、ユーザーが「dgdh」、「sgfdgdfg」などのアルファベット以外の文字を入力しないようにしますが、数字や「7657」や「gfd(-」など)は入力しません。 "fd54" この関数をテストしましたが、すべてのケースをカバーしているわけではありません:
preg_match("#[^0-9]#",$_POST['chaine'])
どうすればそれを達成できますか、事前に感謝します
私のプログラムphpでは、ユーザーが「dgdh」、「sgfdgdfg」などのアルファベット以外の文字を入力しないようにしますが、数字や「7657」や「gfd(-」など)は入力しません。 "fd54" この関数をテストしましたが、すべてのケースをカバーしているわけではありません:
preg_match("#[^0-9]#",$_POST['chaine'])
どうすればそれを達成できますか、事前に感謝します
文字のみ一致(空白なし) :
preg_match("#^[a-zA-Z]+$#",$_POST['chaine'])
説明:
^ # matches the start of the line
[a-zA-Z] # matches any letter (upper or lowercase)
+ # means the previous pattern must match at least once
$ # matches the end of the line
空白あり:
preg_match("#^[a-zA-Z ]+$#",$_POST['chaine'])
2つのこと。まず、数字以外の文字を照合します。それは明らかに文字と同じではありません。[a-zA-Z]
そのため、代わりにor[a-z]
と大文字と小文字を区別しない修飾子を使用できます。
次に、それらの文字の 1 つだけを見つけようとします。文字列全体がこれらで構成されているとは主張しません。代わりにこれを使用してください:
preg_match("#^[a-z]*$#i",$_POST['chaine'])
最も簡単なのは
preg_match('/^[a-z]+$/i', $_POST['chaine'])
i
修飾子は大文字と小文字を区別しません。+
少なくとも 1 つのアルファベットが入力されるようになっています。*
空の文字列を許可する場合は、に変更できます。アンカーは、文字列全体がアルファベットに過ぎないこと^
を強制します。$
(それぞれ、文字列の先頭と末尾を表します)。
whitespace を許可する場合は、次を使用できます。
文字列の最初または最後にある空白のみ:
preg_match('/^\s*[a-z]+\s*$/i', $_POST['chaine'])
どこでも:
preg_match('/^[a-z][\sa-z]*$/i', $_POST['chaine']) // at least one alphabet
スペース文字のみが許可されていますが、他の空白は許可されていません:
preg_match('/^[a-z][ a-z]*$/i', $_POST['chaine'])