我想将我的用户限制为 xxx.xx 格式。我是正则表达式的新手,哪个表达式可以完成这个?

I want to limit my user to the xxx.xx format. I am new to regex, which expression accomplishes this?

我在 asp:repeater 中有一个文本框。文本框用于订购系统,我想限制用户最多只能在小数点前输入 3 个数字,在小数点后输入 2 个数字。小数点是可选的,用户应该可以输入 X、XX、XXX、X.xx、XX.xx、XXX.xx 或任何其他数字组合,只要它不超过限制。

我是正则表达式的新手。正则表达式是完成此任务的最佳方法吗?如果可以,怎么做?

你应该先自己搜索正则表达式教程再问这里,但你想要的正则表达式是 ^\d{1,3}(?:\.\d{1,2})?$

  • ^ 字符串开头的锚点
  • \d{1,3}匹配1-3位数字
  • (?: )?可选组
    • \. 匹配文字 .
    • \d{1,2}匹配1-2位数字
  • $ 锚到字符串的末尾

Regex101 with tests

先于我,但只是轻微的。这是带有 fiddle 的函数的变体。这个也匹配 .99,而 3ocene 不匹配。

C# Fiddle

using System.Text.RegularExpressions;
public static bool IsValidNumber(string num)
{
    return Regex.IsMatch(num, @"^\d{0,3}(\.\d{0,2})?$");
}