我尝试使用asp.net的自定义验证器控件,但问题是它没有调用javascript函数。但是,它调用的是验证方法的服务器端版本。
<asp:CustomValidator EnableClientScript="true"
ID="RegularExpressionValidatorFixedNames" runat="server" ControlToValidate="TextBoxChapterName"
Text="Name not allowed" Font-Size="XX-Small"
ValidationGroup="Name"
ClientValidationFunction="LQA_Validate"
onservervalidate="RegularExpressionValidatorFixedNames_ServerValidate"> </asp:CustomValidator>javascript函数
function LQA_Validate(sender, args) {
var re = /(?! My Ls|My As|My Qs).*/ig;
args.IsValid = re.test(args);
}服务器端方法
protected void RegularExpressionValidatorFixedNames_ServerValidate(object source, ServerValidateEventArgs args)
{
Regex regex = new Regex(@"^(?!My Ls|My Qs|My As).*", RegexOptions.IgnoreCase);
args.IsValid = regex.IsMatch(args.Value);
}问题可能是什么?这个问题是由于正则表达式造成的,还是我在做一些技术错误?
发布于 2013-05-25 00:15:45
问题是:
function LQA_Validate(sender, args) {
var re = /(?! My Ls|My As|My Qs).*/ig;
args.IsValid = re.test(args);
}在re.test(args)中,你应该使用re.test(args.Value);
所以代码必须是:
function LQA_Validate(sender, args) {
var re = /(?! My Ls|My As|My Qs).*/ig;
args.IsValid = re.test(args.Value);
}https://stackoverflow.com/questions/16739199
复制相似问题