我有以下的正則表達式驗證檢測輸入字符串是否包含HTML/script標籤,如果是導致vaidation錯誤:asp.net正則表達式驗證客戶端腳本錯誤
<asp:TextBox ID="txt" runat="server" />
<asp:RegularExpressionValidator
ControlToValidate="txt"
runat="server"
ID="regexVal"
EnableClientScript="true" Display="Dynamic"
ErrorMessage="Invalid Content"
Text="!"
ValidationExpression=">(?:(?<t>[^<]*))" />
當我運行託管這個標記的頁面我得到了一條scipt錯誤消息「正則表達式中的語法錯誤」。 然而,當我採取相同的正則表達式,並使用從System.Text.RegularExpressions一切正則表達式類中運行正常工作: 像這樣:
Regex r = new Regex(">(?:(?<t>[^<]*))");
r.IsMatch(@"<b>This should cause a validation error</b>");
r.IsMatch("this is fine");
我缺少什麼
UPDATE: 的錯誤似乎是發生在下面的js函數中的WebResource.axd:
function RegularExpressionValidatorEvaluateIsValid(val) {
var value = ValidatorGetValue(val.controltovalidate);
if (ValidatorTrim(value).length == 0)
return true;
var rx = new RegExp(val.validationexpression); //this is the line causing the error
var matches = rx.exec(value);
return (matches != null && value == matches[0]);
}
我沒有問題在運行您的代碼,您使用的是哪種瀏覽器? – 2009-12-01 07:04:55
FF 3.5和IE 8.當默認瀏覽器設置爲IE並且項目在調試模式下運行時,會引發腳本錯誤。 – 2009-12-01 07:26:21
對我來說工作也很好。 – 2009-12-01 07:30:44