2

私はテキストフィールドを持つSymfony2.0フォームに取り組んでいます。フィールドを検証するために注釈を使用します。このフィールドには、次の検証があります。

 * @Assert\MinLength(limit=2, message="At least two characters")
 * @Assert\NotBlank()
 * @Assert\Regex(
 *           pattern= "/\d/",
 *           match=   false,
 *           message= "This text cannot contain numbers" 
 * ) 

正規表現のアサーションはここから来ていることに注意してください。

なので、数字以外は全部使えると思います!ただし、「 ò 」などの特殊文字を入力すると、フォームが検証されず、「このテキストには数字を含めることができません」というエラーメッセージが返されます。

http://www.regextester.com/で正規表現文字列を確認しましたが、正しく機能しているようです。

Symfony2.0での検証がうまく機能しない理由はありますか?私は何かが足りないのですか?

4

1 に答える 1

2

Symfony2.0の公式ドキュメントで提案されている正規表現を次のように変更しました。

 @Assert\Regex(pattern= "/[0-9]/")

そして今、フォームはうまく機能します。

最後の考え!正規表現\dを使用して、このような文字が数字になる理由がよくわかりません。英語以外の単語の多くはその文字を使用しています。

于 2012-09-06T06:49:27.670 に答える