6

私はこの正規表現を作成しました:

^[a-zA-Z0-9_.-]*$

サポート:

letters [uppercase and lowercase]
numbers [from 0 to 9]
underscores [_]
dots [.]
hyphens [-]

今、私はこれらを追加したいと思います:

spaces [ ]
comma [,]
exclamation mark  [!]
parenthesis [()]
plus [+]
equal [=]
apostrophe [']
double quotation mark ["]
at [@]
dollar [$]
percent [%]
asterisk [*]

たとえば、次のコードは上記の記号の一部のみを受け入れます。

^[a-zA-Z0-9 _.,-!()+=“”„@"$#%*]*$

戻り値:

警告: preg_match(): コンパイルに失敗しました: オフセット 16 の文字クラスの範囲が正しくありません

4

5 に答える 5

4
于 2013-09-06T14:27:19.283 に答える
2

文字クラス内では[...]、ハイフン-は最初または最後の文字でない限り特別な意味を持つため、エスケープする必要があります。

^[a-zA-Z0-9 _.,\-!()+=“”„@"$#%*]*$

文字クラスで他の文字をエスケープする必要はありません ( を除く])。文字列を示す引用符もエスケープする必要があります。例えば

'/[\']/'
"/[\"]/"
于 2013-09-06T14:20:47.913 に答える