2010-12-13 8 views
0

ファイルのアップロードを検証する次の式を持つasp:regularexpressionvalidatorがあります。デバッグRegularExpressionValidatorコントロール

\.{1}x?html?$ 

Expressoが動作することを示しています。下の簡単なhtmlテストページでは動作することが示されていますが、アプリケーションでは、htmlファイルをファイル入力にロードすると常にバリデータがトリガされます。

誰でもこのコントロールのjavascriptをデバッグするためのアイデアやヒントはありますか?

おかげで、 サム

制御:

<asp:RegularExpressionValidator ID="validRegexHtmlOnly" runat="server" ControlToValidate="fileImportHTML" 
     ValidationExpression="\.{1}x?html?" ErrorMessage="The file must be an HTML document (.html, .htm, .xhtml)" Display="Dynamic" /> 

簡単なテストページ:

<html> 
<head> 
<script type="text/javascript"> 
function validate(){ 
var txt = document.getElementById("txtInput").value; 
alert(/\.{1}x?html?$/.test(txt)); 
} 
</script> 
</head> 
<body> 
<input type="file" id="txtInput" /> 
<input type="button" onclick="validate()" value="click me" /> 
</body> 
</html> 

答えて

0

RegularExpressionValidatorの正規表現は、最後(または先頭など)でなく、文字列全体と一致すると考えられます。サイドノートでは

.*\.x?html? 

にあなたの正規表現を変更してみてください、{1}は便利な何もしていなかったので、私はそれを削除しました。正規表現にと一致させる必要はありません。の何かを一致させる必要はありません。これがデフォルトの動作です。 {1}は、よりもと一致することを止めません。あなたの正規表現を乱雑にするだけです。

+0

あなたの答えがポップアップしたときに私はちょうど質問に答えていました:)^\ S +?\。{1} x?html?$あなたの作品も同様に葉巻を手に入れます! – Nostradamnit

+0

実際にRegExを修正する必要がありました(コントロールには大文字と小文字を区別しないオプションがありません)... ^。* \。[xX]?[hH] [tT] [mM] [1L] ?$は、誰かがより効率的なものを持っていない限り、最終的な作業RegExです:) – Nostradamnit

0

私の最高の推測では、ファイル名の末尾に空白を取得しているということです。それがWebページでどのように起こるかはわかりませんが、私が考えることができるのはこれだけです。

+0

私は$なしで試してみましたが、何も変わりません:( – Nostradamnit

関連する問題