string[] slist = {"1","1.", "1.0","1.00","12.00","123.00","1,234.00","12,345.00","123,456.00","1,234,567.00"}; Regex re = new Regex(@"^\d{1,3}(,\d{3})*\.\d{2}$"); //if integer,., .0, allowed, try //Regex re = new Regex(@"^\d{1,3}(,\d{3})*(\.\d{0,2})?$"); foreach (string s in slist) Console.WriteLine("{0} matches {1}", s, re.IsMatch(s));
<script runat="server"> sub submit(sender As Object, e As EventArgs) if Page.IsValid then lbl.Text="The page is valid!" else lbl.Text="The page is not valid!" end if end sub </script><html> <body><form runat="server"> Enter a US zip code: <asp:TextBox id="txtbox1" runat="server" /><asp:RegularExpressionValidator ControlToValidate="txtbox1" ValidationExpression="^\d{1,3}(,\d{3})*\.\d{2}$" ErrorMessage="***invalid format" runat="server" /> <br /><br /> <asp:Button text="Submit" OnClick="submit" runat="server" /> <br /><br /> <asp:Label id="lbl" runat="server" /> <br /></form></body> </html>
Regex re = new Regex(@"^\d{1,3}(,\d{3})*\.\d{2}$");
//if integer,., .0, allowed, try
//Regex re = new Regex(@"^\d{1,3}(,\d{3})*(\.\d{0,2})?$");
foreach (string s in slist)
Console.WriteLine("{0} matches {1}", s, re.IsMatch(s));
我原先的想法是取得 textbox值后,先判断该值为数值型,如“123456”,再把字符串逆序排列,再判断该字符串有无.与,和. ,的位置是否正确。不知我这样的想法是否正确,如果可以,那代码该怎样写?请思归大哥再帮忙一下,小弟不胜感激!!
sub submit(sender As Object, e As EventArgs)
if Page.IsValid then
lbl.Text="The page is valid!"
else
lbl.Text="The page is not valid!"
end if
end sub
</script><html>
<body><form runat="server">
Enter a US zip code:
<asp:TextBox id="txtbox1" runat="server" /><asp:RegularExpressionValidator
ControlToValidate="txtbox1"
ValidationExpression="^\d{1,3}(,\d{3})*\.\d{2}$"
ErrorMessage="***invalid format"
runat="server" />
<br /><br />
<asp:Button text="Submit" OnClick="submit" runat="server" />
<br /><br />
<asp:Label id="lbl" runat="server" />
<br /></form></body>
</html>