我现在正在使用这个正则表达式,
Regex rg = new Regex(@"\d{1,16}\.?|\d{0,16}\.\d{1,3}");
验证输入到文本框中的十进制值。它工作正常。但它允许用户输入十进制值以及非数字字符,如2.a
or 2\
。
我相信错误的部分就在这里\.?
。我用过?
,所以它接受字母值?我试过类似\.[0-9]?
的东西,但它不起作用。
以下是有效值和无效值:
- 1 --从 0 到 9 有效
- 11 --有效
- 11.1 --有效
- 11.11 --有效
- 11.1111 -- 有效到小数点后 4 位
- 1a -- 无效
- 1\ --无效
- 1.1a --无效
- 一个——无效
SO可能有重复的问题。但有效的正则表达式令牌因实现而异。这就是为什么我在这里提出一个新问题。任何帮助都感激不尽!