javascript 限制输入脚本大全

  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;

  }

  /**//*----------------------------可以放到外部JS中 DateInputControl.js--------------------*/

  function init()

  {

   regDateControl('date1');

  }

  </SCRIPT>

  <body onload='init()'>

  <INPUT TYPE='text' NAME='date1'>

  </body>