Javascript Regex不在服务器端验证的代码隐藏中工作
我有一个验证文本框的js代码。但问题是,同一个正则表达式在代码隐藏中不起作用。参见代码:- 相同的HTML:-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="
<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);
}