给定正则表达式:"^[0-9]*\s*(lbs|kg|kgs)$"
,如何使其不区分大小写?我正尝试在.net正则表达式验证器中使用它,因此我需要在模式中指定不区分大小写。
我不能以编程方式使用RegexOptions,因为我在RegularExpressionValidator中指定正则表达式
发布于 2010-06-17 23:58:35
我发现了。
区分大小写:^[0-9]\s(lbs|kg|kgs)$
不区分大小写:(?i:^[0-9]\s(lbs|kg|kgs)$)
我相信这是特定于正则表达式的.NET实现的。因此,如果在RegularExpressionValidator中使用它,就必须关闭客户端验证,因为javascript regex解析器无法识别?i
令牌。
发布于 2010-04-15 05:38:49
Regex regExInsensitive = new Regex(@"^[0-9]\s(lbs|kg|kgs)$", RegexOptions.IgnoreCase);
在其他语言中,您通常可以在Reg Ex的末尾指定RegEx修饰符;‘不区分大小写’修饰符是'i':
在Perl中:
if($var =~ /^[0-9]\s(lbs|kg|kgs)$/i) { # the /i means case insensitive
# ...
}
在PHP中:
if(preg_match("/^[0-9]\s(lbs|kg|kgs)$/i", $var)) {
// ...
}
发布于 2013-02-24 09:48:58
当确实需要区分大小写的服务器端和客户端时,这里有一种使用CustomValidator的替代方法;而大小写的A-Za-z char方法太多了。
这将使用服务器端RegEx对象和客户端JavaScript语法混合各种其他答案。
CustomValidator:
<asp:CustomValidator ID="cvWeight" runat="server" ControlToValidate="txtWeight"
OnServerValidate="cvWeight_Validate" ClientValidationFunction="cvWeight_Validate"
ValidateEmptyText="true" Text="*" ErrorMessage="Invalid entry." />
代码隐藏:
protected void cvWeight_Validate(object sender, ServerValidateEventArgs args)
{
Regex re = new Regex(@"^[0-9]*\s*(lbs|kg|kgs)$", RegexOptions.IgnoreCase);
args.IsValid = re.IsMatch(args.Value);
}
客户端验证函数:
function cvWeight_Validate(sender, args) {
var reWeight = /^[0-9]*\s*(lbs|kg|kgs)$/i;
args.IsValid = reWeight.test(args);
}
这对我来说工作得很好,除了使用ValidationSummary。在客户端验证中,错误*
显示,但我无法获取要在摘要中显示的错误消息。摘要仅在提交时显示。我认为它应该是显示的;我有一个更新面板和遗留代码的混合,这可能是问题。
https://stackoverflow.com/questions/2641236
复制相似问题