ユーザーからの入力として文字のリストを受け入れ、残りを拒否したい。フォーマットされた文字列を受け入れるか、文字/文字列が欠落しているかどうかを確認できます。しかし、他のすべての文字を拒否しながら、文字のセットのみを受け入れる方法. これを行うには preg_match を使用したいと思います。
例: 許容される文字は次のとおりです: a..z、A..Z、-、' ' ユーザーはこれらの文字を任意の順序で入力できる必要があります。ただし、これらの文字以外の使用を許可してはなりません。
ユーザーからの入力として文字のリストを受け入れ、残りを拒否したい。フォーマットされた文字列を受け入れるか、文字/文字列が欠落しているかどうかを確認できます。しかし、他のすべての文字を拒否しながら、文字のセットのみを受け入れる方法. これを行うには preg_match を使用したいと思います。
例: 許容される文字は次のとおりです: a..z、A..Z、-、' ' ユーザーはこれらの文字を任意の順序で入力できる必要があります。ただし、これらの文字以外の使用を許可してはなりません。
否定された文字クラスを使用します: [^A-Za-z-\w]
これは、ユーザーがその文字クラス以外の何かを入力した場合にのみ一致します。
if (preg_match('/[^A-Za-z-\w]/', $input)) { /* invalid charcter entered */ }
[a-zA-Z-\w]
[] ブラケットは、文字をグループ化し、1 つの文字のように動作させるために使用されます。[...]+ などのようなこともできます az、AZ、0-9 範囲を定義するので、アルファベット全体を書く必要はありません
次の正規表現を使用できます: ^[a-zA-Z -]+$
.
は文字列の^
先頭に一致するため、文字列の途中に一致することはありません123abc
。同様に、 は文字列の$
末尾に一致し、 の途中に一致することはありませんabc123
。
括弧は、その中のすべての文字に一致します。a-z
と の間のすべての文字を意味a
しz
ます。-
文字自体に合わせて、最後に置きます。( [19-]
a 1
、 a 9
、または a に一致し-
ます。と[1-9]
の間のすべての文字に一致し、 には一致しません)。
は、その前にある 1 つ以上のものに一致するように指示します。をに置き換えることができます1
9
-
+
+
*
これは、空の文字列にも一致させたい場合は 0 以上を意味します。
詳細については、こちらを参照してください。
許可された文字を規定する否定された^
文字クラスを見て、一致をテストします。[]
$pattern = '/[^A-Za-z\- ]/';
if (preg_match($pattern, $string_of_input)){
//return a fail
}
//Matt beat me too it...