C# windows应用程序中,如何从文本框TextBox中提取数字?

来源:百度知道 编辑:UC知道 时间:2024/07/07 20:14:55
假设往一个文本框TextBox中输入一串字符串,如: 12,3,5;a,b,34 现在要想从中提取数字并将数字赋给一个字符串数组string [] temp;
那么该使用什么方法或者函数呢?
不好意思,呵呵,我想不通过正则表达式实现,因为我不懂,呵呵....要注意的是,将数字提取到字符数组时,不可拆开,即12不能拆成1和2,34不能拆成3和4,如果按照是否是数字的方法遍历TextBox中字符串,会把他们拆开滴...

下面是我遇到类似的问题时做的笔记,我的处理过程。我处理的时候是将所有的结合到一起处理的。这种问题有好多种解决方法,每个人的思路都不一样但是最后都会有一个相同的结果,希望我的方法可以给你起到一个抛砖引玉的作用。
方法一:将TextBox的赋给一个String类型的值,例如 String a = TextBox.text 然后取到a的数组长度,通过for循环去每个判断一下如果是数字则输出不是则跳过。
方法二:在函数内嵌套try catch语句 然后对TextBox的值进行强制类型转换如果出现错误则提示错误
方法三:通过正则表达式判断(下面是我在网上找到的一些写好的正则表达式)
整数格式
PatternsDict.long=/^(0|[1-9]\d*)$/;

//小数格式
PatternsDict.double=/^(0|[1-9]\d*)\.(\d+)$/;

//数值格式
PatternsDict.number=/^(0|[1-9]\d*)$|^(0|[1-9]\d*)\.(\d+)$/;

//自然数
PatternsDict.positive=/^([1-9]\d*)$/;

//负整数
PatternsDict.negative=/^(-([1-9]\d*))$/;

1.文本框只能输入数字代码(小数点也不能输入)
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">

2.只能输入数字,能输小数点.
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterp