我有一个用于验证文本框的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 '';
}));
});
});
我这样使用,但它无法正常工作
protected void Validate_Numeric(object sender, ServerValidateEventArgs e)
{
System.Text.RegularExpressions.Regex r = new System.Text.RegularExpressions.Regex("/[^.%a-zA-Z0-9 ]/g");
e.IsValid = r.IsMatch(txtSearch.Text);
}
我想要这个/[^.%a-zA-Z0-9 ]/g
,在代码隐藏中使用相同的正则表达式。
请帮忙。
答案 0 :(得分:0)
不确定。可能这会对你有所帮助。答案不适合你。但是,您将有机会克服这个问题。
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);
}