ASP.net, c#, 如何检查输入的值是否为数字,可以是小数或简单的整数
ASP.net, c#, how to check if the value entered is numeric, it could be decimal or simply integer
我试图限制用户输入有效的十进制值(无逗号)
什么是最好的方法。
我的代码:
try{
Convert.ToInt32(stringToCheck)
}
catch
{
//invlaid
}
如果用户输入的是十进制值,例如 3.0,尽管它是一个有效值,但它会失败。
如果我尝试
Convert.ToDouble(stringToCheck)
如果用户输入 3,6,这个就无法捕获
请帮忙!
谢谢。
使用正则表达式。 Here 是怎样的。
一个例子:
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string s = "123";
if (Regex.IsMatch(s, @"^\d+$"))
{
Console.WriteLine("Given string is numeric");
}
else
{
Console.WriteLine("Given string is non-numeric");
}
}
}
您可以更改表达式以接受任何类型的数字。
更新:
完整的解决方案是:
static bool isNumeric(string s)
{
if (Regex.IsMatch(s, @"^-?[1-9][0-9,\.]+$"))
{
return true;
}
else
{
return false;
}
}
以下代码是测试:
Console.WriteLine(isNumeric("0123"));//returns false
Console.WriteLine(isNumeric("2.2"));//returns true
Console.WriteLine(isNumeric("-2.0"));//returns true
Console.WriteLine(isNumeric("123123.2"));//returns true
Console.WriteLine(isNumeric("123sad"));//returns false
var stringToCheck = "3,6";
var isDouble =
double.TryParse(stringToCheck,NumberStyles.AllowDecimalPoint,
NumberFormatInfo.InvariantInfo, out double doubleValue);
if (isDouble)
{
// Do stuff if doubleValue variable
}
else
{
// code to run if not double
}
我试图限制用户输入有效的十进制值(无逗号)
什么是最好的方法。
我的代码:
try{
Convert.ToInt32(stringToCheck)
}
catch
{
//invlaid
}
如果用户输入的是十进制值,例如 3.0,尽管它是一个有效值,但它会失败。
如果我尝试
Convert.ToDouble(stringToCheck)
如果用户输入 3,6,这个就无法捕获
请帮忙!
谢谢。
使用正则表达式。 Here 是怎样的。
一个例子:
using System;
using System.Text.RegularExpressions;
public class Example
{
public static void Main()
{
string s = "123";
if (Regex.IsMatch(s, @"^\d+$"))
{
Console.WriteLine("Given string is numeric");
}
else
{
Console.WriteLine("Given string is non-numeric");
}
}
}
您可以更改表达式以接受任何类型的数字。
更新:
完整的解决方案是:
static bool isNumeric(string s)
{
if (Regex.IsMatch(s, @"^-?[1-9][0-9,\.]+$"))
{
return true;
}
else
{
return false;
}
}
以下代码是测试:
Console.WriteLine(isNumeric("0123"));//returns false
Console.WriteLine(isNumeric("2.2"));//returns true
Console.WriteLine(isNumeric("-2.0"));//returns true
Console.WriteLine(isNumeric("123123.2"));//returns true
Console.WriteLine(isNumeric("123sad"));//returns false
var stringToCheck = "3,6";
var isDouble =
double.TryParse(stringToCheck,NumberStyles.AllowDecimalPoint,
NumberFormatInfo.InvariantInfo, out double doubleValue);
if (isDouble)
{
// Do stuff if doubleValue variable
}
else
{
// code to run if not double
}