Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式不起作用的javascript验证_Javascript_Asp.net_Regex - Fatal编程技术网

正则表达式不起作用的javascript验证

正则表达式不起作用的javascript验证,javascript,asp.net,regex,Javascript,Asp.net,Regex,在我的asp.net web应用程序中。我需要验证文本框条目以避免这些特殊字符\/:*>“|。我计划用空字符串替换该字符,并为此编写了一个javascript函数,并添加了属性以从服务器端调用该函数,如下所示 txtProjectName.Attributes.Add("onkeyup", "ValiateSpecialCharacter()"); 至此,一切正常,函数被调用。同时输入任意字符。函数为 function ValiateSpecialCharacter(){ var tx

在我的asp.net web应用程序中。我需要验证文本框条目以避免这些特殊字符
\/:*>“|
。我计划用空字符串替换该字符,并为此编写了一个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
变量中的原始字符串。情况并非如此。我在客户端验证它。而不是在表单提交后进行验证。用户在文本框中输入某个值时,我需要它。