我需要一个正则表达式,只能排除可被1.5整除的数字。我不知道这是否可能?
我检查了正则表达式库,但它们没有任何内容。有人有什么想法吗?
答案 0 :(得分:3)
正如其他人所说,Regex不是正确的工具,最好使用如下的CustomValidator:
<asp:CustomValidator ID="DivisibleByOnePointFiveValidator" runat="server" ErrorMessage="Must be divisible by 1.5!"
Display="Dynamic" ControlToValidate="MyTextBox" EnableClientScript="false"
OnServerValidate="DivisibleByOnePointFiveValidator_ServerValidate" >
</asp:CustomValidator>
protected void DivisibleByOnePointFiveValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
decimal inputValue;
if (!decimal.TryParse(args.Value, out inputValue))
{
args.IsValid = false;
return;
}
args.IsValid = inputValue % 1.5M == 0;
}
答案 1 :(得分:2)
正则表达式用于字符串验证,而不是数字验证(除了说某些东西是否为数字)。你需要一个自定义验证器。
答案 2 :(得分:1)
使用正则表达式验证数值不是一个好主意。最好只为此目的编写一个小的验证器函数。
您可以使用此正则表达式非常轻松地验证数字/非数字:[0-9]+
当然,这将允许许多前导零并且不考虑小数。你可以变得更复杂,例如[0-9]+(\.(0|[0-9]+))?
我认为这会使十进制可选。我们甚至没有开始出现负面信号,科学符号和其他符号格式。如果指定允许的输入格式,我们可以使用正则表达式更轻松地提供帮助。