JavaScript有没有判定输入内容是否是数值的函数? 谢谢。那如果用正则表达式强制输入只能是数字,这个input应该怎么写呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <script>function check(obj){val=obj.value;for(var i=0;i<val.length;i++) if(!isDigit(val.charAt(i))) return false;return true;}function isDigit(num){if(num.length>1){return false;}var string="1234567890";if(string.indexOf(num)!=-1){return true;}return false;}</script><input type=text onblur="window.alert(check(this))"> <input name="id2" type="text" onkeyup='this.value=this.value.replace(/\D/gi,"")'> <script language="JavaScript"> function check(){ if (isNaN(document.form.je.value)){ alert("请填写数字!"); return(false); } form.submit(); }</script>够清楚吧 <input onkeypress="return event.keyCode>=48&&event.keyCode<=57||event.keyCode==46" onpaste="return !clipboardData.getData('text').match(/\D/)" ondragenter="return false"> 非常感谢楼上的各位。我觉得原来自己的想法用个onSubmit去逐个检查输入是否数值太麻烦了,应为一个页面的输入内容很多。用正则表达式在input时就规范用户输入可能更好些。mackyliu(NB联盟--风流才子)老兄的input接近我的要求了。只是我输入的还需要检查包括小数点的数值。这个正则表达式该怎么写呢? <html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>无标题文档</title><script language="JavaScript">去掉空格function Trim(str){ if(str.charAt(0) == " "){ str = str.slice(1); str = Trim(str); } return str;}判断是否是空function isEmpty(pObj,errMsg){ var obj = eval(pObj); if( obj == null || Trim(obj.value) == ""){ if (errMsg == null || errMsg =="") alert("输入为空!"); else alert(errMsg); obj.focus(); return false; } return true;}判断是否是数字function isNumber(pObj,errMsg){ var obj = eval(pObj); strRef = "1234567890"; if(!isEmpty(pObj,errMsg))return false; for (i=0;i<obj.value.length;i++) { tempChar= obj.value.substring(i,i+1); if (strRef.indexOf(tempChar,0)==-1) { if (errMsg == null || errMsg =="") alert("数据不符合要求,请检查"); else alert(errMsg); if(obj.type=="text") obj.focus(); return false; } } return true;}//判断是否是数字,数字可以为负数function isNegative(pObj,errMsg){ var obj = eval(pObj); strRef = "1234567890-"; if(!isEmpty(pObj,errMsg))return false; for (i=0;i<obj.value.length;i++) { tempChar= obj.value.substring(i,i+1); if (strRef.indexOf(tempChar,0)==-1) { if (errMsg == null || errMsg =="") alert("数据不符合要求,请检查"); else alert(errMsg); if(obj.type=="text") obj.focus(); return false; }else{ if(i>0){ if(obj.value.substring(i,i+1)=="-"){ if (errMsg == null || errMsg =="") alert("数据不符合要求,请检查"); else alert(errMsg); if(obj.type=="text") obj.focus(); return false; } } } } return true;}判断是否是钱的形式function isMoney(pObj,errMsg){ var obj = eval(pObj); strRef = "1234567890."; if(!isEmpty(pObj,errMsg)) return false; for (i=0;i<obj.value.length;i++) { tempChar= obj.value.substring(i,i+1); if (strRef.indexOf(tempChar,0)==-1) { if (errMsg == null || errMsg =="") alert("数据不符合要求,请检查"); else alert(errMsg); if(obj.type=="text") obj.focus(); return false; }else{ tempLen=obj.value.indexOf("."); if(tempLen!=-1){ strLen=obj.value.substring(tempLen+1,obj.value.length); if(strLen.length>2){ if (errMsg == null || errMsg =="") alert("数据不符合要求,请检查"); else alert(errMsg); if(obj.type=="text") obj.focus(); return false; } } } } return true;}function isLeapYear(year) { if((year%4==0&&year%100!=0)||(year%400==0)) { return true; } return false; } //判断时间是否正确function isDate(checktext){var datetime;var year,month,day;var gone,gtwo;if(Trim(checktext.value)!=""){ datetime=Trim(checktext.value); if(datetime.length==10){ year=datetime.substring(0,4); if(isNaN(year)==true){ alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)!"); checktext.focus(); return false; } gone=datetime.substring(4,5); month=datetime.substring(5,7); if(isNaN(month)==true){ alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)!"); checktext.focus(); return false; } gtwo=datetime.substring(7,8); day=datetime.substring(8,10); if(isNaN(day)==true){ alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)!"); checktext.focus(); return false; } if((gone=="-")&&(gtwo=="-")){ if(month<1||month>12) { alert("月份必须在01和12之间!"); checktext.focus(); return false; } if(day<1||day>31){ alert("日期必须在01和31之间!"); checktext.focus(); return false; }else{ if(month==2){ if(isLeapYear(year)&&day>29){ alert("二月份日期必须在01到29之间!"); checktext.focus(); return false; } if(!isLeapYear(year)&&day>28){ alert("二月份日期必须在01到28之间!"); checktext.focus(); return false; } } if((month==4||month==6||month==9||month==11)&&(day>30)){ alert("在四,六,九,十一月份 \n日期必须在01到30之间!"); checktext.focus(); return false; } } }else{ alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)"); checktext.focus(); return false; } }else{ alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)"); checktext.focus(); return false; }}else{ return true;}return true;}</script><script language="JavaScript">function checked(theform){ if (!isEmpty(theform.aa,'请输入数据')) return false;}</script></head><body><form method="post" action="" name="dd" onSubmit="return checked(this);">判断是否输入数据<input type="text" name="aa"><br>判断数量<input type="text" name="bb" onChange="return isNumber(this,'');"><br>判断数量,可以为负数<input type="text" name="dd" onChange="return isNegative(this,'');"><br>判断金额<input type="text" name="cc" onChange="return isMoney(this,'');"><br>判断时间<input type="text" name="ee" onChange="return isDate(this)"><br><input type="submit" value="submit"></form></body></html> <script>function CheckForm(){ for(iIndex=0;iIndex<document.forms[0].elements.length;iIndex++) { if(document.forms[0].item(iIndex).tagName=="INPUT") { if(document.forms[0].item(iIndex).type=="text") { if(document.forms[0].item(iIndex).value=="") { return false; } } } } return true;}</script><form><input type=text id="T1" value=""><input type=text id="T2" value=""><input type=text id="T3" value=""><br><input type=button id="B1" value="效验" onclick="if(!CheckForm()){window.confirm('存在NULL')}"></form> /\D/.test(inputValue); //true则有非数字 javascript资料完整度 怎样在canvas上实现图片的滚动 请教高人 本人写了一个简单的循环语句为什么就不行呢 【高分】求一个jquery滚动效果(锋利的juqery实例改编) javascript控制div.style.left失败的问题? extjs的问题 一个广域网使用的设备tree,上千个节点,是一次读入所有节点,还是点击节点再读入下层呢? 一个显示的问题 如何使span里面的字在span中居中显示? td.onclick事件不响应 如何从网上下载可执行文件 我已定义了一个层,但如何将这个层的左页面边距设为动态的?
function check(obj)
{
val=obj.value;
for(var i=0;i<val.length;i++)
if(!isDigit(val.charAt(i)))
return false;
return true;
}
function isDigit(num)
{
if(num.length>1)
{return false;}
var string="1234567890";
if(string.indexOf(num)!=-1){return true;}
return false;}
</script>
<input type=text onblur="window.alert(check(this))">
function check(){
if (isNaN(document.form.je.value)){
alert("请填写数字!");
return(false);
}
form.submit();
}
</script>
够清楚吧
我觉得原来自己的想法用个onSubmit去逐个检查输入是否数值太麻烦了,应为一个页面的输入内容很多。
用正则表达式在input时就规范用户输入可能更好些。
mackyliu(NB联盟--风流才子)老兄的input接近我的要求了。
只是我输入的还需要检查包括小数点的数值。
这个正则表达式该怎么写呢?
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="JavaScript">
去掉空格
function Trim(str){
if(str.charAt(0) == " "){
str = str.slice(1);
str = Trim(str);
}
return str;
}
判断是否是空
function isEmpty(pObj,errMsg){
var obj = eval(pObj);
if( obj == null || Trim(obj.value) == ""){
if (errMsg == null || errMsg =="")
alert("输入为空!");
else
alert(errMsg);
obj.focus();
return false;
}
return true;
}
判断是否是数字
function isNumber(pObj,errMsg){
var obj = eval(pObj);
strRef = "1234567890";
if(!isEmpty(pObj,errMsg))return false;
for (i=0;i<obj.value.length;i++) {
tempChar= obj.value.substring(i,i+1);
if (strRef.indexOf(tempChar,0)==-1) {
if (errMsg == null || errMsg =="")
alert("数据不符合要求,请检查");
else
alert(errMsg);
if(obj.type=="text")
obj.focus();
return false;
}
}
return true;
}//判断是否是数字,数字可以为负数
function isNegative(pObj,errMsg){
var obj = eval(pObj);
strRef = "1234567890-";
if(!isEmpty(pObj,errMsg))return false;
for (i=0;i<obj.value.length;i++) {
tempChar= obj.value.substring(i,i+1);
if (strRef.indexOf(tempChar,0)==-1) {
if (errMsg == null || errMsg =="")
alert("数据不符合要求,请检查");
else
alert(errMsg);
if(obj.type=="text")
obj.focus();
return false;
}else{
if(i>0){
if(obj.value.substring(i,i+1)=="-"){
if (errMsg == null || errMsg =="")
alert("数据不符合要求,请检查");
else
alert(errMsg);
if(obj.type=="text")
obj.focus();
return false;
}
}
}
}
return true;
}判断是否是钱的形式
function isMoney(pObj,errMsg){
var obj = eval(pObj);
strRef = "1234567890.";
if(!isEmpty(pObj,errMsg)) return false;
for (i=0;i<obj.value.length;i++) {
tempChar= obj.value.substring(i,i+1);
if (strRef.indexOf(tempChar,0)==-1) {
if (errMsg == null || errMsg =="")
alert("数据不符合要求,请检查");
else
alert(errMsg);
if(obj.type=="text")
obj.focus();
return false;
}else{
tempLen=obj.value.indexOf(".");
if(tempLen!=-1){
strLen=obj.value.substring(tempLen+1,obj.value.length);
if(strLen.length>2){
if (errMsg == null || errMsg =="")
alert("数据不符合要求,请检查");
else
alert(errMsg);
if(obj.type=="text")
obj.focus();
return false;
}
}
}
}
return true;
}function isLeapYear(year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
return true;
}
return false;
} //判断时间是否正确function isDate(checktext){
var datetime;
var year,month,day;
var gone,gtwo;
if(Trim(checktext.value)!=""){
datetime=Trim(checktext.value);
if(datetime.length==10){
year=datetime.substring(0,4);
if(isNaN(year)==true){
alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)!");
checktext.focus();
return false;
}
gone=datetime.substring(4,5);
month=datetime.substring(5,7);
if(isNaN(month)==true){
alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)!");
checktext.focus();
return false;
}
gtwo=datetime.substring(7,8);
day=datetime.substring(8,10);
if(isNaN(day)==true){
alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)!");
checktext.focus();
return false;
}
if((gone=="-")&&(gtwo=="-")){
if(month<1||month>12) {
alert("月份必须在01和12之间!");
checktext.focus();
return false;
}
if(day<1||day>31){
alert("日期必须在01和31之间!");
checktext.focus();
return false;
}else{
if(month==2){
if(isLeapYear(year)&&day>29){
alert("二月份日期必须在01到29之间!");
checktext.focus();
return false;
}
if(!isLeapYear(year)&&day>28){
alert("二月份日期必须在01到28之间!");
checktext.focus();
return false;
}
}
if((month==4||month==6||month==9||month==11)&&(day>30)){
alert("在四,六,九,十一月份 \n日期必须在01到30之间!");
checktext.focus();
return false;
}
}
}else{
alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)");
checktext.focus();
return false;
}
}else{
alert("请输入日期!格式为(yyyy-mm-dd) \n例(2001-01-01)");
checktext.focus();
return false;
}
}else{
return true;
}
return true;
}</script><script language="JavaScript">
function checked(theform){
if (!isEmpty(theform.aa,'请输入数据')) return false;
}
</script>
</head>
<body>
<form method="post" action="" name="dd" onSubmit="return checked(this);">
判断是否输入数据<input type="text" name="aa"><br>
判断数量<input type="text" name="bb" onChange="return isNumber(this,'');"><br>判断数量,可以为负数<input type="text" name="dd" onChange="return isNegative(this,'');"><br>判断金额<input type="text" name="cc" onChange="return isMoney(this,'');"><br>判断时间<input type="text" name="ee" onChange="return isDate(this)"><br>
<input type="submit" value="submit">
</form>
</body>
</html>
function CheckForm()
{
for(iIndex=0;iIndex<document.forms[0].elements.length;iIndex++)
{
if(document.forms[0].item(iIndex).tagName=="INPUT")
{
if(document.forms[0].item(iIndex).type=="text")
{
if(document.forms[0].item(iIndex).value=="")
{
return false;
}
}
}
}
return true;
}
</script>
<form>
<input type=text id="T1" value="">
<input type=text id="T2" value="">
<input type=text id="T3" value="">
<br>
<input type=button id="B1" value="效验" onclick="if(!CheckForm()){window.confirm('存在NULL')}">
</form>