2024年3月15日发(作者:)
C#判断字符串是否为数字字符串
在进行C#编程时候,有的时候我们需要判断一个字符串是否是数字字符串,我们可以通过以下两种方法
来实现。
【方法一】:使用 try{} catch{} 语句。
我们可以在try语句块中试图将string类型的字符串变量转换为int类型,如果该字符串不是数字字符
串则会抛出异常,这时在catch语句块中就能捕获异常。一旦发现异常,则不是数字字符串。
我们可以以下三种方式将string类型转换为int类型。
(1) (string);
(2) 16(string); //当数字字符串的位数大于4的时候请使用32()
(3) 32(string);
添加一个文本框TextBox1,和一个按钮Button1,当点击按钮时,判断文本框中的内容是否为数字字符串,
是的话则输出转换后的数值。
protected void Button1_Click(object sender, EventArgs e)
{
string message = ();
int result;
if(isNumberic(message,out result))
{
string tt="";
erStartupScript(e(), "", tt);
}
else
erStartupScript(e(), "", "");
}
protected bool isNumberic(string message,out int result)
{
//判断是否为整数字符串
//是的话则将其转换为数字并将其设为out类型的输出值、返回true, 否则为false
result = -1; //result 定义为out 用来输出值
try
{
//当数字字符串的为是少于4时,以下三种都可以转换,任选一种
//如果位数超过4的话,请选用32() 和()
//result = (message);
//result = 16(message);
result = 32(message);
return true;
}
catch
{
return false;
}
}
上述方法可以将int改为double,如 (),这样就可以判断是否为浮点数字符串
【方法二】:通过正则表达式来判断。
用正则表达式来验证字符串是否为数字字符串。我们要用到Regex类的isMatch()方法。该类在Syst
rExpressions; 您可以通过using rExpressions;导入命名
空间来访问Regex类。也可以直接通过 来访问。
protected bool isNumberic(string message,out int result)
{
rex=
new (@"^¥d+$");
result = -1;
if (h(message))
{
result = (message);
return true;
}
else
return false;
}
通过正则表达式判断是否匹配,不仅可以用来做简单的判断匹配,还可以进行精确的匹配,如判断是否是六位
的数字字符串,Email匹配等。正则表达式是一种很好的方法。
protected void Button1_Click(object sender, EventArgs e)
{
string message = ();
isNumeric(message); //判断字符串是否为5为整数字符串
}
protected void isNumeric(string message)
{
if (message != "" && h(message, @"^d{5}$"))
{
//成功
erStartupScript(e(), "", "");
}
else
//失败
erStartupScript(e(), "", "");
}
补充
//正则匹配
匹配中文字符的正则表达式: [u4e00-u9fa5]
匹配双字节字符(包括汉字在内):[^x00-xff]
匹配空行的正则表达式:n[s| ]*r
匹配HTML标记的正则表达式:/<(.*)>.*<1>|<(.*) >/
匹配首尾空格的正则表达式:(^s*)|(s*$)(像vbscript那样的trim函数)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:([w-]+.)+[w-]+(/[w- ./?%&=]*)?
以下是例子:
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文:onkeyup="value=e(/[^u4E00-u9FA5]/g,'')"
onbeforepaste="a('text',a('text').replace(/[^u4E0
0-u9FA5]/g,''))"
1.用正则表达式限制只能输入全角字符: onkeyup="value=e(/[^uFF00-uFFFF]/g,'')"
onbeforepaste="a('text',a('text').replace(/[^uFF0
0-uFFFF]/g,''))"
2.用正则表达式限制只能输入数字:onkeyup="value=e(/[^d]/g,'')
"onbeforepaste="a('text',a('text').replace(/[^d]/g,
''))"
3.用正则表达式限制只能输入数字和英文:onkeyup="value=e(/[W]/g,'')
"onbeforepaste="a('text',a('text').replace(/[^d]/g,
''))"


发布评论