Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/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 Regex不在服务器端验证的代码隐藏中工作_Javascript_Regex_Server Side - Fatal编程技术网

Javascript Regex不在服务器端验证的代码隐藏中工作

Javascript Regex不在服务器端验证的代码隐藏中工作,javascript,regex,server-side,Javascript,Regex,Server Side,我有一个验证文本框的js代码。但问题是,同一个正则表达式在代码隐藏中不起作用。参见代码:- 相同的HTML:- <asp:TextBox ID="txtSearch" runat="server" class="txtfld-search" oncopy="return false" oncut="return false" onpaste="return false"></asp:TextBox> <asp:CustomValidator ID="

我有一个验证文本框的js代码。但问题是,同一个正则表达式在代码隐藏中不起作用。参见代码:-

相同的HTML:-

<asp:TextBox ID="txtSearch" runat="server" class="txtfld-search" oncopy="return false" oncut="return false" onpaste="return false"></asp:TextBox>
        <asp:CustomValidator ID="CustomValidator1" runat="server" ForeColor="Red" ErrorMessage="Please enter numeric values."
OnServerValidate="Validate_Numeric" ControlToValidate="txtSearch"></asp:CustomValidator>


<script type="text/javascript">
$(document).ready(function () {
    $('#ctl00_topNavigation_txtSearch').keyup(function () {
        var $th = $(this);
        $th.val($th.val().replace(/[^.%a-zA-Z0-9 ]/g,
        function (str) {
            alert('Special characters not allowed except %');
            return '';
        }));
    });
});
我希望这个
/[^.%a-zA-Z0-9]/g
,在代码隐藏中使用相同的正则表达式。
请帮忙。

不确定。也许这对你有帮助。答案并不完全适合你。然而,你会有一个想法来克服这个问题

using System.Text.RegularExpressions;


protected void Validate_Numeric(object sender, ServerValidateEventArgs e)
{
    string Pattern = @"[^.%a-zA-Z0-9]";
    e.IsValid = Regex.IsMatch(txtSearch.Text, Pattern);    
}

是否要替换除以下字符以外的任何字符:“.”、“%”、“a”到“z”、“a”到“z”、“0”到“9”、“我不知道什么是
System.Text
,但我怀疑它是否需要两端都包含/的字符串。这个问题的答案可能在
System.Text.RegularExpressions
文档中。答案似乎在这里:@Braj:我不想替换,我希望除了“%”,它不允许在文本框中插入任何特殊字符。注意:另外,它应该在服务器端进行验证。您真正想要的是什么。你能发布预期的结果吗?我正在使用asp.net。它将如何验证我的txtSearch文本框?这只是一个片段示例。如果代码有效的话,你可以接受这个想法。无论你是否得到了预期的结果,都可以在你的控制台中尝试。我尝试了其他代码,它成功了,从你的代码中得到了逻辑。
using System.Text.RegularExpressions;


protected void Validate_Numeric(object sender, ServerValidateEventArgs e)
{
    string Pattern = @"[^.%a-zA-Z0-9]";
    e.IsValid = Regex.IsMatch(txtSearch.Text, Pattern);    
}