C#中的正则表达式,匹配0-100之间的数字怎么写呢?

asbleach123 2011-06-09 05:19:46
Regex EmailExpression = new Regex(@"(^[1-9]?[0-9]$)|100", RegexOptions.Singleline | RegexOptions.Compiled);
if (!EmailExpression.IsMatch(TextBox3.Text))
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('考试成绩范围填写不正确!');</script>");
return;
}



上面是我写的,这个不对,运行后,不管输入的是什么数字都报错说“考试成绩范围填写不正确!”,请高手指教!
...全文
1178 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingdom_0 2011-06-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 asbleach123 的回复:]

现在用二楼的大人那个行了,可是这个只能验证整数,我要是输入一个小数就报错,怎么能连小数也能验证呢?
[/Quote]
 
string str = "100.123";
string patterns=@"^(?:[1-9]?[0-9]{1}(?:\.[0-9]+)|100(?:\.[0-9]+))$";
Regex regex = new Regex(patterns);
Console.WriteLine(regex.Match(str).Value);
-过客- 2011-06-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 asbleach123 的回复:]
现在用二楼的大人那个行了,可是这个只能验证整数,我要是输入一个小数就报错,怎么能连小数也能验证呢?
[/Quote]

^(?:[1-9]?[0-9](?:\.[0-9]+)|100)$
porschev 2011-06-09
  • 打赏
  • 举报
回复



^+?(([1-9]\d?)|(100)|(0))$

renyiqiu 2011-06-09
  • 打赏
  • 举报
回复
RegexTester 百度或GG下找这个软件吧,使用正则表达式之前,先用这个调试,免得改来改去
renyiqiu 2011-06-09
  • 打赏
  • 举报
回复

decimal score;
if (decimal.TryParse(TextBox1.Text, out score))
{
if (score < 0 || score > 100)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('考试成绩范围填写不正确!');</script>");
return;
}
Response.Write("<script>alert('正确');</script>");
}
else
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert('格式不正确!');</script>");
}


调试成功啊,没有LZ所说的会出错啊
兔子-顾问 2011-06-09
  • 打赏
  • 举报
回复
^(?!00+)(\d{1,2}|100)$
种草德鲁伊 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 asbleach123 的回复:]

楼上的大人,我也想过用你说的那个,但是那样的话一输入字母整个程序就会出错,而不是判断然后出现提示框。
[/Quote]

TryParse不会抛出异常,转换成功会返回true,否则返回false.
csproj 2011-06-09
  • 打赏
  • 举报
回复
TryParse 不会抛异常
asbleach123 2011-06-09
  • 打赏
  • 举报
回复
楼上的大人,我也想过用你说的那个,但是那样的话一输入字母整个程序就会出错,而不是判断然后出现提示框。
种草德鲁伊 2011-06-09
  • 打赏
  • 举报
回复
最好是转换为decimal再比较范围。



decimal score;
if(decimal.TryParse(TextBox3.Text, out score))
{
if(score < 0 || score > 100)
{
// 超出范围
}
}
else
{
// 格式错误
}

csproj 2011-06-09
  • 打赏
  • 举报
回复
为什么用正则?
double.TryParse 然后直接 比较大小不行吗
asbleach123 2011-06-09
  • 打赏
  • 举报
回复
现在用二楼的大人那个行了,可是这个只能验证整数,我要是输入一个小数就报错,怎么能连小数也能验证呢?
asbleach123 2011-06-09
  • 打赏
  • 举报
回复
楼上的两位大人,我试过了,还是不对的说,还是不管输入什么都报错说“考试成绩范围填写不正确”
种草德鲁伊 2011-06-09
  • 打赏
  • 举报
回复
@"^([1-9]?[0-9])|100$"
renyiqiu 2011-06-09
  • 打赏
  • 举报
回复
  
^+?(([1-9]\d?)|(100)|(0))$

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧