我正在寻找验证文本框。该文本框用于使用户可以输入客户的付费率。例如。 8.40,10.50,24.80。我想验证它,并且我已经读过使用正则表达式来更快更简单的方法。问题是我仍然不熟悉括号内字符的使用方式。任何帮助是极大的赞赏。谢谢!C#:使用正则表达式验证文本框
回答
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Text;
using System.Text.RegularExpressions;
using System.Reflection;
public class MainClass{
public static void Main(){
Regex moneyR = new Regex(@"\$(((\d{1,3},)+\d{3})|\d+)\.\d{2}");
string[] money = new string[] { "$0.99",
"$1099999.00",
"$10.25",
"$90,999.99",
"$1,990,999.99",
"$1,999999.99" };
foreach (string m in money){
Console.WriteLine(m);
Console.WriteLine(moneyR.IsMatch(m));
}
}
}
- $ 0.99真
- 真$ 1099999.00
- 真$ 10.25
- 真$ 90,999.99
- 假$ 1,990999.99
你能解释Regex括号内的字符吗?我不明白为什么1,990,999.99美元是错误的。 – jquirante 2011-03-10 00:11:09
\ $匹配美元符号。 \ d +匹配1个或多个数字。 \。匹配一个时期。 \ d {2}恰好匹配两个十进制字符。然而,上面的正则表达式不允许使用逗号,所以我没有看到最后三个字符串中的任何一个会如何通过。 – mikesigs 2011-03-10 00:15:47
哦,好的。我现在开始明白了。所以要测试这些字符是否通过,我只需要使用moneyR.IsMatch(txtbox.text); ?那会返回真或假? – jquirante 2011-03-10 00:21:14
嗯,我能问究竟是什么构成的几个问题有效的输入。但这里的另一种方法:
一个或多个数字 - 或者 - 一个或多个数字后跟一个小数点和一个或两个数字:
double dbl;
if (!double.TryParse(Text1.Text, out dbl))
MessageBox.Show("Invalid value entered!");
<asp:TextBox ID="txtPayRate" runat="server" />
<asp:RegularExpressionValidator
ID="revPayRate"
ControlToValidate="txtPayRate"
ValidationExpression="\d+(\.\d{1,2})?"
ErrorMessage="Message to display in ValidationSummary control"
Text="Message to display in control"
runat="server" >
</asp: RegularExpressionValidator>
正则表达式可以如下翻译。
\ d +任何数字,一个或多个重复
(\ d {1,2})?一个编号的捕获组,零个或一个重复。细分如下:
\。文字。
\ d {1,2}任何位,1和2重复
之间
这将只用于英语的货币的工作,虽然。以下是一些通过/失败的例子。- 10.00 PASS
- 1.00 PASS
- 1.1 PASS
- 1 PASS
- 1. FAIL
- 10,00 FAIL
我强烈建议你下载一个名为Expresso的工具。它非常强大而完整的版本是免费的。我一直在使用它多年。 http://www.ultrapico.com/Expresso.htm – mikesigs 2011-03-10 00:58:34
- 1. 正则表达式验证器不验证空的文本框
- 2. 使用javascript和正则表达式验证HTML文本框
- 3. C#正则表达式验证验证
- 4. 如何在ASP.NET中使用正则表达式验证器验证文本框
- 5. 用于验证输入的文本框的正则表达式
- 6. 验证URL使用正则表达式
- 7. 验证使用正则表达式
- 8. Laravel - 验证使用正则表达式
- 9. 使用Java验证正则表达式
- 10. 验证使用正则表达式
- 11. 验证使用正则表达式
- 12. 验证文本框长度的正则表达式
- 13. 正则表达式验证器的文本框
- 14. 多行文本框的ASP正则表达式验证器
- 15. 正则表达式验证日期 - C#
- 16. C#:正则表达式验证网址
- 17. Ext.net C#testfiled正则表达式验证
- 18. 正则表达式验证
- 19. 正则表达式验证
- 20. 正则表达式验证
- 21. 正则表达式验证
- 22. 使用默认文本进行正则表达式验证?
- 23. 如何使用正则表达式验证文本字段
- 24. 验证使用正则表达式编辑文本输入
- 25. C#正则表达式验证规则使用Regex.Match()
- 26. TextBox中的时间验证。验证文本框的一些正则表达式
- 27. 对文本框中的数字使用正则表达式验证程序
- 28. 这验证该文本框的正则表达式包含在C#Asp.net
- 29. 对多个文本框进行正则表达式验证? C#asp.net
- 30. 正则表达式验证的正则表达式
只是好奇,但你在那里读了正则表达式会更快? – 2011-03-10 00:27:50
我猜测代码更快或更短。 – jquirante 2011-03-10 00:37:17