正则表达式不起作用的javascript验证
在我的asp.net web应用程序中。我需要验证文本框条目以避免这些特殊字符正则表达式不起作用的javascript验证,javascript,asp.net,regex,Javascript,Asp.net,Regex,在我的asp.net web应用程序中。我需要验证文本框条目以避免这些特殊字符\/:*>“|。我计划用空字符串替换该字符,并为此编写了一个javascript函数,并添加了属性以从服务器端调用该函数,如下所示 txtProjectName.Attributes.Add("onkeyup", "ValiateSpecialCharacter()"); 至此,一切正常,函数被调用。同时输入任意字符。函数为 function ValiateSpecialCharacter(){ var tx
\/:*>“|
。我计划用空字符串替换该字符,并为此编写了一个javascript函数,并添加了属性以从服务器端调用该函数,如下所示
txtProjectName.Attributes.Add("onkeyup", "ValiateSpecialCharacter()");
至此,一切正常,函数被调用。同时输入任意字符。函数为
function ValiateSpecialCharacter(){
var txt=document.getElementById("<%=txtProjectName.ClientID%>").value;
txt.replace(/[\\\/:*>"<>|]/g, '');
alert(txt);
document.getElementById("<%=txtProjectName.ClientID%>").value=txt;
}
函数ValiateSpecialCharacter(){
var txt=document.getElementById(“”)值;
txt.replace(/[\\\/:*>“|]/g'”);
警报(txt);
document.getElementById(“”).value=txt;
}
我在函数中使用正则表达式来实现这一点。但是测试并没有按计划被替换。此代码中是否有错误。还要注意,警报正在工作。尝试在
txt
中获取结果,即获取变量中替换文本的值
txt = txt.replace(/[\\\/:*>"<>|]/g, '');
txt=txt.replace(/[\\\/:*>“|]/g,”);
在您的查询中,您将获得上一个值。按如下方式正确分配txt=txt。替换(/[\\\/:*>“|]/g')代码>。它在警报
框中显示最新结果
function ValiateSpecialCharacter(){
var txt=document.getElementById("<%=txtProjectName.ClientID%>").value;
txt = txt.replace(/[\\\/:*>"<>|]/g, '');
alert(txt);
document.getElementById("<%=txtProjectName.ClientID%>").value=txt;
}
函数ValiateSpecialCharacter(){
var txt=document.getElementById(“”)值;
txt=txt.replace(/[\\\/:*>“|]/g'”);
警报(txt);
document.getElementById(“”).value=txt;
}
这不是你问的问题,但似乎是满足你需求的一种奇怪方式。除非我误解了这个问题。既然你在服务器上运行ASP.NET,为什么要使用JavaScript进行服务器验证?
在客户端验证输入通常是有意义的。为此,您需要挂接一个事件,如FormSubmit来调用javascript函数
如果要在服务器上进行验证,请在函数处理表单submit中使用类似以下内容:
Regex re = new Regex("^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9](?:\\.[a-zA-Z]{1,})+$");
if (!re.IsMatch (domain.Text)) {
warningLabel.Text = "Domain format is invalid!";
formError = true;
}
显然,您不需要验证域,因此需要更改regex等。服务器端验证不需要JavaScript。将结果分配回txt
替换()
方法返回应用替换的字符串副本。它不会修改txt
变量中的原始字符串。情况并非如此。我在客户端验证它。而不是在表单提交后进行验证。用户在文本框中输入某个值时,我需要它。