1

在验证表单上的文本框时,我熟悉 .Net 中的验证控件,但不熟悉如何使用 C# 进行验证。我做了一些研究,我知道验证的基础知识,比如确保控件不为空。

但是你如何测试字符呢?我有一个只能是数字的文本框 ID 字段。我从研究中发现的任何东西都没有使用过类似的东西。主要是IsNullOrEmpty

你如何实现类似的东西来测试字符串字段中的数值?

if (string.IsNullOrEmpty(rTxtBoxFormatID.Text))
{
    ValidationMessages.Add("Missing Product Number");
}

我在下面解决了这个问题,我需要将它与 if 语句中的comobox.selectedindex 进行比较。

if (string.IsNullOrEmpty(cmboBoxStock.SelectedIndex.ToString()))
{
     rLblStockIDError.Text = "Missing Stock Number";
}
4

3 回答 3

2

您可以使用Int32.TryParseDouble.TryParse来检查字符串是否为数字。

使用 Int32.TryParse

int number;
string value = "123";
bool result = Int32.TryParse(value, out number);

使用 Double.TryParse

double number;
string value = "123.123";
bool result = Double.TryParse(value, out number)

你的代码是

int number;
if (!Int32.TryParse(rTxtBoxFormatID.Text, out number))
{
    ValidationMessages.Add("Missing Product Number");
于 2013-11-15T01:30:39.130 回答
0

您可以使用正则表达式来检查字符串中的任何非数字字符。

Regex r = new Regex(@"\D");
if (!r.IsMatch(rTxtBoxFormatID.Text))
{
    // The text contains only numeric characters
}

\D 匹配除十进制数字以外的任何字符。更多关于正则表达式

于 2013-11-15T02:04:08.907 回答
0

而不是在 c# 代码中执行此操作,您可以在 aspx 中使用 RegularExpressionValidator、RequiredFieldValidator、regex

<asp:TextBox ID="txtNo" runat="server"/>
<asp:Button ID="btnSubmit" runat="server" Text="Submit"/>
<asp:RegularExpressionValidator ID="regexpName" runat="server" ErrorMessage="Product Number can only be numeric" ControlToValidate="txtNo" ValidationExpression="^[0-9]$" />
<asp:RequiredFieldValidator runat="server" id="reqName" controltovalidate="txtNo" errormessage="Missing Product Number" />

http://www.w3schools.com/aspnet/aspnet_refvalidationcontrols.asp

http://msdn.microsoft.com/en-us/library/ff650303.aspx

http://www.dotnetperls.com/regex-match

于 2013-11-15T02:21:20.737 回答