- - PR -
Validator で 整数値の正規表現
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-08-13 13:31
お疲れ様です。
現在、StrutsでWEBアプリを開発しております。 そこで、入力チェックにValidatorを使おうということになり、 早速インテグレーションしてみました。 NO(整数値)を入力するフィールドがあり、 そのフィールドを検証対象としました。 NOはINTEGERの範囲を超える使用になっており、 depends に required と long を使ってみました。 ------------------------------------------------------------ <field property="no" depends="required, long"> <arg0 key="test.header" resource="true" /> <arg1 key="${var:maxlength}" resource="false" /> </field> ------------------------------------------------------ この場合、正常に動作はするのですが、 サーバサイドのみのチェックになり、 JavaスクリプトのAlertは実行されません。 JSのAlertを出したいので、 超苦手の正規表現を使ってみることにしました。 ----------------------------------------------------- <field property="no" depends="required, mask, maxlength"> <arg0 key="test.header" resource="true" /> <arg1 key="${var:maxlength}" resource="false" /> <var> <var-name>mask</var-name> <var-value>[0-9]+</var-value> </var> <var> <var-name>maxlength</var-name> <var-value>18</var-value> </var> </field> ------------------------------------------------------- 必須入力で、18桁までの整数値をチェックしようとしています。 結論から言いますと期待する動作になりません。 入力値 結果 1 OK 11 OK a ERROR a1 OK 1a OK となりました。 [0-9]+でa1と1aがOKになるのは理解できませんが、 *[0-9]+*と判断されているのではないかと思います。 この場合、どのように記述すればよいのでしょうか。 知識がなく皆様の力を貸してください。 | ||||
|
投稿日時: 2004-08-13 13:44
"[0-9]+"は、任意個の数字にマッチしますよね。"a1"の"1"にマッチしてるんです。それだけで"[0-9]+"はもう満足。「それ以外の文字列が含まれていない」という言明はどこにもないのです。 "^[0-9]+$"と書くとお望みの動作になると思います。 | ||||
|
投稿日時: 2004-08-13 13:51
佐々木さん、レスありがとうございました。
期待通りの動作が確認できました。 超基本的なことですよね。。。これ。 ありがとうございました。 | ||||
1
