我希望验证文本框。使用文本框以便用户可以输入客户的工资率。例如。 8.40,10.50,24.80。我想验证它,我已经读过使用正则表达式将是更快更容易的方法。问题是我还不熟悉如何在括号内使用字符。任何帮助是极大的赞赏。谢谢!
答案 0 :(得分:4)
好吧,我可以问几个关于究竟是什么构成有效输入的问题。但这是另一种方法:
double dbl;
if (!double.TryParse(Text1.Text, out dbl))
MessageBox.Show("Invalid value entered!");
答案 1 :(得分:0)
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));
}
}
}
答案 2 :(得分:0)
<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})?编号的捕获组,零个或一个重复。细分如下:
\。 Literal。
\ d {1,2} 任意数字,1到2次重复
这只适用于英国货币。以下是一些将通过/失败的例子。