javascript 限制输入脚本大全

时间:2021-05-26

1.只能输入汉字的
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">

2.只能输入数字的:
<input onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
简易禁止输入汉字
<input type="text" style="ime-mode:disabled">
输入数字和小数点:
onkeyup="value=value.replace(/[^\d{1,}\.\d{1,}|\d{1,}]/g,'')"
javascript 只能输入数字和":".2007-11-24 15:50<input type=text id="aa1" onkeyup="this.value=this.value.replace(/[^\d&:]/g,'')" onblur="this.value=this.value.replace(/[^\d&:]/g,'')" onafterpaste="this.value=this.value.replace(/[^\d&:]/g,'')"/>
只能数字和":",例如在输入时间的时候可以用到。
<input type=text id="aa" onkeyup="value=value.replace(/[^\w&=]|_/ig,'')" onblur="value=value.replace(/[^\w&=]|_/ig,'')" />
只能输入字母和等号,不能输入汉字。
其它的东西:
只能输入数字的脚本javascript- -
1.<input onkeyup="this.value=this.value.replace(/\D/g,'')"
onafterpaste="this.value=this.value.replace(/\D/g,'')">
上半句意思是键盘键入只能是数字,下半句是粘贴也只能是数字
2.<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能输入数字');this.value='';}">
3.<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
JavaScript限制只能输入数字和英文- -
function isregname( checkobj)
{
var checkOK = "0123456789-_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
var checkStr = checkobj;
var allValid = true;
var decPoints = 0;

for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkOK.length; j++)
if (ch == checkOK.charAt(j))
break;
if (j == checkOK.length)
{
allValid = false;
break;
}
}
return (allValid)
}
----------------
if(!(isregname(obj.loginname.value))){
alert("[会员代号]不符合规范,会员代号只能是英文字母或数字");
obj.loginname.focus();
return(false);
}
if(!(isregname(obj.password.value))){
alert("[密码]不符合规范,密码只能是英文字母或数字");
obj.password.focus();
return(false);
}

4.javascript只能输入英文和数字的输入框
<input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
5.可以用Javascript对文本框进行检查,过滤掉非0-9的字符。
<script language="javascript" event="onkeydown" for="document">
   if(event.srcElement.name=='TextBox1')
   {
   if(!KeyIsNumber(event.keyCode))
   {
   return false;//这句话最关键
   }
   }
  </script>
  <script language="javascript">
  function KeyIsNumber(KeyCode)
  {
   //如果输入的字符是在0-9之间,或者是backspace、DEL键
   if(((KeyCode>47)&&(KeyCode<58))||(KeyCode==8)||(KeyCode==46))
   {
   return true;
   }
   else
   {
   return false;
   }
  }
  </script>[url=http://blog.csdn.net/xujh/admin/EditPosts.aspx][/url]


6.限制在文本框里面只能输入IP地址格式
<HTML>
<head>
<meta http-equiv="Content-Type" content="text/HTML; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<style>
.a3{width:30;border:0;text-align:center}
</style>
<script>
function mask(obj){
obj.value=obj.value.replace(/[^\d]/g,'')
key1=event.keyCode
if (key1==37 || key1==39)
{ obj.blur();
nextip=parseInt(obj.name.substr(2,1))
nextip=key1==37?nextip-1:nextip+1;
nextip=nextip>=5?1:nextip
nextip=nextip<=0?4:nextip
eval("ip"+nextip+".focus()")
}
if(obj.value.length>=3)
if(parseInt(obj.value)>=256 || parseInt(obj.value)<=0)
{
alert(parseInt(obj.value)+"IP地址错误!")
obj.value=""
obj.focus()
return false;
}
else
{ obj.blur();
nextip=parseInt(obj.name.substr(2,1))+1
nextip=nextip>=5?1:nextip
nextip=nextip<=0?4:nextip
eval("ip"+nextip+".focus()")
}
}
function mask_c(obj)
{
clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))
}

</script>
<title>IP地址输入</title>

</head>
<body>IP地址输入
<div style="border-width:1;border-color:balck;border-style:solid;width:165;font-size:9pt">
<input type=text name=ip1 maxlength=3 class=a3 onkeyup="mask(this)" onbeforepaste=mask_c()>.
<input type=text name=ip2 maxlength=3 class=a3 onkeyup="mask(this)" onbeforepaste=mask_c()>.
<input type=text name=ip3 maxlength=3 class=a3 onkeyup="mask(this)" onbeforepaste=mask_c()>.
<input type=text name=ip4 maxlength=3 class=a3 onkeyup="mask(this)" onbeforepaste=mask_c()>
</div>
</body>
</HTML>


7.限制输入格式的日期控件
  
  ----- 日期控件的另一种思路,限制输入格式的日期控件 ----- 关于日期输入,现在网上的日期控件很多,在这里,我试着模仿了部分CS程序中的日期输入控件,从另一个角度来考虑日期格式的输入,即输入日期时固定格式,用户只能在程序规定的地方输入数据。
  例程如下,希望对大家有所帮助~~~ (时间仓促,例程是IE ONLY的)
  <SCRIPT LANGUAGE='JavaScript'>
  /*
  * Added by LiuXiaoChong 2005.4.25
  * 限制输入的日期控件
  * Param: txtName 为要限制输入的文本框的名称
  *
  * 功能描述:1,只能输入数字
  * 2,左右键可以移动编辑焦点
  * 3,上下键可以对数据进行微调
  * 4,控件包含了对日期的合法校验
  */
  function regDateControl(txtName)
  {
   var oInput = document.getElementById(txtName);
   oInput.middleChar = '-';
   oInput.selectIndex = 1; //默认选中年
   oInput.maxLength = 10;
   oInput.style.imeMode = 'disabled';
   oInput.value = specialText_GetDate(oInput.middleChar);
   oInput.charWidth = oInput.createTextRange().boundingWidth / oInput.maxLength;
   //注册单击事件
   oInput.onclick = specialText_ClickEvent;
   oInput.onkeydown = specialText_KeyDownEvent;
   oInput.onfocus = function(){specialText_SelectYear(this);}
   oInput.onblur = function()
   {
   specialText_validYear(this);
   specialText_validMonth(this);
   specialText_validDate(this);
   }
   //屏蔽鼠标右键和拖动操作
   oInput.oncontextmenu = function(){return false;}
   oInput.ondrop = function(){return false;}
  }
  //鼠标单击,根据位置对日期进行分体选择
  function specialText_ClickEvent()
  {
   event.cancelBubble = true;
   specialText_validYear(this);
   specialText_validMonth(this);
   specialText_validDate(this);
   if(event.offsetX <= specialText_getCharWidth(this.charWidth,4))
   specialText_SelectYear(this);
   else if(event.offsetX > specialText_getCharWidth(this.charWidth,4)
   && event.offsetX <= specialText_getCharWidth(this.charWidth,7))
   specialText_SelectMonth(this);
   else if(event.offsetX > specialText_getCharWidth(this.charWidth,7))
   specialText_SelectDate(this);
  }
  //选中年份
  function specialText_SelectYear(oInput)
  {
   var oRange = oInput.createTextRange();
   oRange.moveStart('character',0);
   oRange.moveEnd('character',-6);
   //代表选中了年
   oInput.selectIndex = 1;
   oRange.select();
  }
  //选中月份
  function specialText_SelectMonth(oInput)
  {
   var oRange = oInput.createTextRange();
   oRange.moveStart('character',5);
   oRange.moveEnd('character',-3);
   //代表选中了月
   oInput.selectIndex = 2;
   oRange.select();
  }
  //选中日期
  function specialText_SelectDate(oInput)
  {
   var oRange = oInput.createTextRange();
   oRange.moveStart('character',8);
   //代表选中了日期
   oInput.selectIndex = 3;
   oRange.select();
  }
  //校验年份有效性
  function specialText_validYear(oInput)
  {
   var arrValue = oInput.value.split(oInput.middleChar);
   var strYear = arrValue[0];
   if(parseInt(strYear,10) == 0)
   arrValue[0] = 2000;
   //如果年份小于4位,则在2000基础上增加
   else if(strYear.length < 4)
   arrValue[0] = 2000 + parseInt(strYear,10);
   oInput.value = arrValue.join(oInput.middleChar);
  }
  //校验月份有效性
  function specialText_validMonth(oInput)
  {
   var arrValue = oInput.value.split(oInput.middleChar);
   var strMonth = arrValue[1];
   //如果月份输入了0,则按1月处理
   if(parseInt(strMonth,10) == 0)
   arrValue[1] = '01';
   //如果月份是一位,则前面补0
   else if(strMonth.length < 2)
   arrValue[1] = '0' + strMonth;
   //如果月份大于12月,自动转为12月
   else if(parseInt(strMonth,10) > 12)
   arrValue[1] = '12';
   oInput.value = arrValue.join(oInput.middleChar);
  }
  //校验日期有效性
  function specialText_validDate(oInput)
  {
   var arrValue = oInput.value.split(oInput.middleChar);
   var strYear = arrValue[0];
   var strMonth = arrValue[1];
   var strDate = arrValue[2];
   var intMonth = parseInt(strMonth,10);
   if(parseInt(strDate,10) == 0)
   arrValue[2] = '01';
   else if(strDate.length < 2)
   arrValue[2] = '0' + strDate;
   else
   {
   //如果超过了月份的最大天数,则置为最大天数
   var monthMaxDates = specialText_getMonthDates(strYear,strMonth);
   if(parseInt(strDate,10) > monthMaxDates)
   arrValue[2] = monthMaxDates;
   }
   oInput.value = arrValue.join(oInput.middleChar);
  }
  function specialText_YearAdd(oInput,isMinus)
  {
   var arrValue = oInput.value.split(oInput.middleChar);
   var strYear = arrValue[0];
   if(isMinus)
   {
   arrValue[0] = parseInt(strYear,10) - 1;
   if(parseInt(arrValue[0],10) < 1)
   arrValue[0] = '0001';
   }
   else
   arrValue[0] = parseInt(strYear,10) + 1;
   oInput.value = arrValue.join(oInput.middleChar);
   specialText_validYear(oInput);
   specialText_SelectYear(oInput);
  }
  function specialText_MonthAdd(oInput,isMinus)
  {
   var arrValue = oInput.value.split(oInput.middleChar);
   var strMonth = arrValue[1];
   if(isMinus)
   {
   arrValue[1] = parseInt(strMonth,10) - 1;
   if(parseInt(arrValue[1],10) == 0)
   arrValue[1] = '12';
   }
   else
   {
   arrValue[1] = parseInt(strMonth,10) + 1;
   if(parseInt(arrValue[1],10) == 13)
   arrValue[1] = '01';
   }
   oInput.value = arrValue.join(oInput.middleChar);
   specialText_validMonth(oInput);
   specialText_SelectMonth(oInput);
  }
  function specialText_DateAdd(oInput,isMinus)
  {
   var arrValue = oInput.value.split(oInput.middleChar);
   var strYear = arrValue[0];
   var strMonth = arrValue[1];
   var strDate = arrValue[2];
   var monthMaxDates = specialText_getMonthDates(strYear,strMonth);
   if(isMinus)
   {
   arrValue[2] = parseInt(strDate,10) - 1;
   if(parseInt(arrValue[2],10) == 0)
   arrValue[2] = monthMaxDates;
   }
   else
   {
   arrValue[2] = parseInt(strDate,10) + 1;
   if(parseInt(arrValue[2],10) == (monthMaxDates + 1))
   arrValue[2] = '01';
   }
   oInput.value = arrValue.join(oInput.middleChar);
   specialText_validDate(oInput);
   specialText_SelectDate(oInput);
  }
  function specialText_KeyDownEvent()
  {
   //如果按了数字键
   if((event.keyCode >= 48 && event.keyCode <= 57) ||
   (event.keyCode >= 96 && event.keyCode <= 105))
   {
   var oRange = document.selection.createRange();
   if(oRange.text.indexOf(this.middleChar) != -1)
   event.returnValue = false;
   else
   event.returnValue = true;
   }
   //如果按了方向键
   else if(event.keyCode >= 37 && event.keyCode <= 40)
   {
   event.returnValue = false;
   var keyCode = event.keyCode;
   //按了左键
   if(keyCode == 37)
   {
   if(this.selectIndex == 1)
   {
   specialText_validYear(this);
   specialText_SelectDate(this);
   }
   else if(this.selectIndex == 2)
   {
   specialText_validMonth(this);
   specialText_SelectYear(this);
   }
   else if(this.selectIndex == 3)
   {
   specialText_validDate(this);
   specialText_SelectMonth(this);
   }
   }
   //按了右键
   if(keyCode == 39)
   {
   if(this.selectIndex == 1)
   {
   specialText_validYear(this);
   specialText_SelectMonth(this);
   }
   else if(this.selectIndex == 2)
   {
   specialText_validMonth(this);
   specialText_SelectDate(this);
   }
   else if(this.selectIndex == 3)
   {
   specialText_validDate(this);
   specialText_SelectYear(this);
   }
   }
   //按了上键
   if(keyCode == 38)
   {
   if(this.selectIndex == 1)
   {
   specialText_validYear(this);
   specialText_YearAdd(this,true);
   }
   else if(this.selectIndex == 2)
   {
   specialText_validMonth(this);
   specialText_MonthAdd(this,true);
   }
   else if(this.selectIndex == 3)
   {
   specialText_validDate(this);
   specialText_DateAdd(this,true);
   }
   }
   //按了下键
   if(keyCode == 40)
   {
   if(this.selectIndex == 1)
   {
   specialText_validYear(this);
   specialText_YearAdd(this,false);
   }
   else if(this.selectIndex == 2)
   {
   specialText_validMonth(this);
   specialText_MonthAdd(this,false);
   }
   else if(this.selectIndex == 3)
   {
   specialText_validDate(this);
   specialText_DateAdd(this,false);
   }
   }
   }
   //如果按了F5 或 TAB,不屏蔽
   else if(event.keyCode == 116 || event.keyCode == 9)
   event.returnValue = true;
   else
   {
   event.returnValue = false;
   event.keyCode = 0;
   }
  }
  
  //得到默认日期
  function specialText_GetDate(middleChar)
  {
   var oDate = new Date();
   return oDate.getYear() + middleChar
   + (oDate.getMonth() < 10 ? ('0' + oDate.getMonth()) : oDate.getMonth()) + middleChar
   + (oDate.getDate() < 10 ? ('0' + oDate.getDate()) : oDate.getDate());
  }
  //得到字符像素宽度
  function specialText_getCharWidth(charWidth,charNum)
  {
   return charNum * charWidth;
  }
  //得到某年某月的最大天数
  function specialText_getMonthDates(strYear,strMonth)
  {
   var intMonth = parseInt(strMonth,10);
   if(intMonth == 1 || intMonth == 3 || intMonth == 5 || intMonth == 7
   || intMonth == 8 || intMonth == 10 || intMonth == 12)
   return 31;
   //处理30天的月份
   else if(intMonth == 4 || intMonth == 6 || intMonth == 9 || intMonth == 11)
   return 30;
   //处理2月份
   else
   {
   //闰年
   if(specialText_isLeapYear(strYear))
   return 29;
   //平年
   else
   return 28;
   }
  }
  //判断是否是闰年
  function specialText_isLeapYear(strYear)
  {
   var intYear = parseInt(strYear,10);
   if((intYear % 4 == 0 && intYear % 100 != 0) ||
   (intYear % 100 == 0 && intYear % 400 == 0))
   return true;
   else
   return false;
  }
  
  function init()
  {
   regDateControl('date1');
  }
  </SCRIPT>
  <body onload='init()'>
  <INPUT TYPE='text' NAME='date1'>
  </body>

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章