在网页上有一个textbox,对应的类型是string,要求在这个编辑框里输入数字,我加了一个CustomValidator(当不是数字时就进行警告),请问如何在代码中判断输入的是数字呢?
解决方案 »
- 在gridview中的DropDownList
- petshop中的IList
- calendar控件自动隐藏??
- 关于IIS下的目录不能正确显示出树形控件
- 水晶报表如何打印表格问题?
- 程序运行是 想 让等待中显示一个等待提示图片 运行结束 就不显示了 怎么作呢 用什么方法作 给个提示!!谢谢
- 关于:使用Active Reports for .NET开发打印页面
- datagrid添加了一个CHECKBOX,但选中后不能进行相应操作,第二贴,希望能有帮我解决100分
- session权限问题
- webconfig的配置问题,求指教
- 后台给TEXTBOX赋值,然后用户又通过WEB界面修改TEXTBOX的值,然后到数据库,值没有变
- 高分求教 使用URLRewriter时出现 ‘未将对象引用设置到对象的实例’ 的问题
onkeypress="if (!((event.keyCode >= 48 && event.keyCode <=57) || event.keyCode == 46 )) event.returnValue = false;"
另外如果你一定要在后台判断,可以把输入的字符一个一个的转化为ASC码比对,但是不推荐这样做.
也可以用正则表达式,写在后台前台都可以
{
Regex regex=new Regex(@"\d+");
string myString = "ddafs12121";
Match match = null;
match = regex.Match(myString);
if (myString.Equals(match.Groups[0].Value.ToString()))
Console.WriteLine("True");
else
Console.WriteLine("False");
}
Label1.Text = r.Match(TextBox1.Text).Success ? "right" : "wrong";
int i;
Label1.Text = int.TryParse(TextBox1.Text, out i) ? i.ToString() : "wrong";
{
int i=Convert.ToInt32(变量);
}
catch(Exception ex)
{
//不是int类型的就报错贝
}
{
int i=Convert.ToInt32(变量);
//是数字
}
catch(Exception ex)
{
//不是int类型
}
onkeypress="if (!((event.keyCode >= 48 && event.keyCode <=57) || event.keyCode == 46 )) event.returnValue = false;" 这里只是判断一个字母的吧,我要判断一个string.何况假如是一个浮点数呢,有小数点的,这个估计判断不了吧。
方法最好
//名称:检查文本框内容是否数字
//版本:1.0
//日期:2006-05-05
//作者:roc
/////////////////////////////////
function IsNumeric(InputObject,ObjectTitle)
{
//var temp = parseInt(InputObject.value)
if(!isNaN(InputObject.value))
{
return true;
}
else
{
alert(ObjectTitle+"只能是数字!")
InputObject.focus();
return false;
}
}在textbox的标签中加上失去焦点的事件,如:onblur="IsNumeric(this,'编号')"
整数或者浮点数
try
{
rtnInt = Int.Parse(yourStr);
}
catch
{
rtnInt = 1;
}
{
var reg;
var bolzero;
if(Trim(objStr)=="")
{
return false;
}
else
{
objStr=objStr.toString();
}
if((sign==null)||(Trim(sign)==""))
{
sign="+-";
}
if((includezero==null)||(Trim(includezero)=="")||Trim(includezero) =="n") //不包含0
{
bolzero=false;
}
else
{
includezero=includezero.toString();
if(includezero=="y")
{
bolzero=true;
}
else
{
alert("检查是否包含0参数,只可为(空、y, n)");
}
}
switch(sign)
{
case "+-":
//整数
reg=/(^-?|^\+?)\d+$/;
break;
case "+":
if(!bolzero) //不包括0的正整数
{
//正整数 reg=/^\+?[0-9]*[1-9][0-9]*$/;
}
else //包括0的正整数
{
//正整数+0 (非负整数)
//reg=/^\+?\d+$/;
reg=/^\+?[0-9]*[0-9][0-9]*$/;
}
break;
case "-":
if(!bolzero) //不包括0负整数 {
//负整数 reg=/^-[0-9]*[1-9][0-9]*$/;
}
else //包括0的负整数
{
//负整数+0 (非正整数)
//reg=/^-\d+$/;
reg=/^-[0-9]*[0-9][0-9]*$/;
}
break;
default:
alert("检查符号参数,只可为(空、+、-)");
return false;
break;
}
var r=objStr.match(reg);
if(r==null)
{
return false;
}
else
{
return true;
}
}
/*
IsFloat(string,string,int or string):
功能:判断是否为浮点数、正浮点数、负浮点数、正浮点数+0、负浮点数+0
includezero:检查范围是否包括0,y范围包括0,n范围不包括0,null范围不包括0
*/
function IsFloat(objStr,sign,includezero)
{
var reg;
var bolzero;
if(Trim(objStr)=="")
{
return false;
}
else
{
objStr=objStr.toString();
}
if((sign==null)||(Trim(sign)==""))
{
sign="+-";
}
if((includezero==null)||(Trim(includezero)=="")||Trim(includezero)=="n")
{
bolzero=false;
}
else
{
includezero=includezero.toString();
if(includezero=="y")
{
bolzero=true;
}
else
{
alert("检查范围是否包括0,只可为(空、y, n)");
}
}
switch(sign)
{
case "+-":
//浮点数 reg=/^((-?|\+?)\d+)(\.\d+)?$/;
break;
case "+":
if(!bolzero)
{
//正浮点数
reg=/^\+?(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
}
else
{
//正浮点数+0 (非负浮点数)
reg=/^\+?\d+(\.\d+)?$/;
}
break;
case "-":
if(!bolzero)
{
//负浮点数
reg=/^-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/;
}
else
{
//负浮点数+0 (非正浮点数)
reg=/^((-\d+(\.\d+)?)|(0+(\.0+)?))$/;
}
break;
default:
alert("检查符号参数,只可为(空、+、-)");
return false;
break;
}
var r=objStr.match(reg);
if(r==null)
{
return false;
}
else
{
return true;
}
}
/*
function CheckMoney(obj)
{
if (!IsFloat(obj.value,"+")){alert("输入格式100!(Input format 100!)") ;obj.value=''; return;} //IsFloat(obj.value,"+"):不可以输入负数,IsFloat(obj.value):可以输入负数
if (obj.value.indexOf('.') == -1) return;
if (obj.value.length - obj.value.indexOf('.') > 3)
{obj.value = obj.value.substr(0,obj.value.indexOf('.') + 3);}
}
onkeypress="if (!((event.keyCode >= 48 && event.keyCode <=57) || event.keyCode == 46 )) event.returnValue = false;"这种方法有一个弊端,就是如果是全角情况下,输入全角数字,在这个地方判断不出来,但是到后台转换成数字的时候又会出错。
所以还是建议使用正则。
/// 判断一个字符串是否是数字型的字符串
/// </summary>
/// <param name="strValue">字符串</param>
/// <returns>是则返回true,否则返回false</returns>
public static bool IsNumeric(string strValue)
{
return Regex.IsMatch(strValue, @"^[+-]?\d*[.]?\d*$");
}
再加一个 必须验证控件,这样后台不需要代码,这个 textbox 里面一定有数字,你直接用就是了。
2、
on error goto ...
cint(textbox1.text)
isNaN 会这样:isNaN("12345a")=true;
boolean isNumber = true;
try {
int a = Integer.parseInt(string);
} catch (NumberFormatException e) {
isNumber = false;
}
return isNumber;
}