0

CRUD アプリケーションを開発しています。Propel を ORM として使用し、検証ルールを schema.xml に追加しました。しかし、これはうまくいきません。たとえば、ユーザーの姓を含む文字列を送信すると、バリデータは次のようになります。

<rule name='minLength' value='4'/>
<rule name='maxLength' value='30'/>
<rule name='notMatch' value='/^\s+$/' />
<!-- the name can be only chars and spaces -->
<rule name='match' value='/[^A-Za-z ]$/'/>

送信されたユーザーの姓は「Martinez D Elia」です。そして、4番目のルールで有効な失敗。何か案が ?。

4

2 に答える 2

0

最小4文字、最大30文字が必要なため、前の回答を少し変更します。これを使用することをお勧めします。

/^[A-Za-z ]{4,30}$/

また、正規表現の前後に「/」が必要なことにも注意してください。参考までに、あなたの正規表現は 2 つの理由で間違っていました: 文字クラス内の "^" の配置と、文字クラスの後の長さ修飾子の欠落 ("*"、"+"、または角かっこ {} のいずれもなし)。 1 つの文字のみに一致し、それ以上の文字は失敗します)。

于 2013-01-07T23:00:36.807 に答える