1

FileUpload入力のファイル拡張子を許可された拡張子(ユーザー指定)のリストと照合するRegExValidatorを作成しようとしています。以下は私が得た限りですが\、ファイルパスに表示されるバックスラッシュ()の構文に苦労しています。]明らかに、エラーの原因となる()をエスケープするだけなので、以下は正しくありません。ここで助けていただければ幸いです。そこにはたくさんの例があるようですが、私がそれらを試してみるとどれもうまくいかないようです。

[a-zA-Z_-s0-9:\]+(.pdf|.PDF)$
4

2 に答える 2

2

\b文字クラスに円記号を含めるには、特定のエスケープシーケンス( )を使用する必要があります。

[a-zA-Z_\s0-9:\b]+(\.pdf|\.PDF)$

\b文字クラスの外側は単語の境界を表すため、これは少し混乱する可能性があることに注意してください。また、これ-sはタイプミスであり、空白を表す必要があると思いました。(そうでなければ、コンパイルすべきではないと思います)

編集:あなたはまた、ドットをエスケープする必要があります。それ以外の場合は、改行以外の任意の文字のメタ文字になります。

別の編集:ファイル名にハイフンを実際に許可したい場合は、文字クラスの最後にハイフンを配置する必要があります。このような:

[a-zA-Z_\s0-9:\b-]+(\.pdf|\.PDF)$
于 2012-09-27T12:04:48.550 に答える
0

あなたはおそらく次のようなものを使いたいでしょう

[a-zA-Z_0-9\s:\\-]+\.[pP][dD][fF]$

これはと同じです

[\w\s:\\-]+\.[pP][dD][fF]$

なぜなら\w=[a-zA-Z0-9_]

文字-をリストの最初または最後の項目として配置するようにして[...]ください。そうしないと、範囲または文字(。など)に対して特別な意味がありますa-z

また\、キャラクターは、の内側であっても、別のスラッシュでエスケープする必要があり[...]ます。

于 2012-09-27T12:06:10.980 に答える