问题描述
例如一个文本框里面需要输入15个字符,但最后8位必须是数字,要用js写怎么写??
解决方案
解决方案二:
顶
解决方案三:
正则?
解决方案四:
使用msajax控件:MaskedEditExtender可以很方便的解决~
解决方案五:
一个文本框里面需要输入15个字符,但最后8位必须是数字所以,从第8位开始必须是数字可以用正则表达式这样判断:varreg=/^w{7}d+$/;alert(reg.test(value));
解决方案六:
<html><head><title>Input</title><scriptlanguage="javascript"type="text/javascript">functionkeyPress(obj){//字符串长度大于15是,只能输入编辑键if(obj.value.length>=15&&event.ctrlKey!=true){returnIsEditKey();}if(obj.value.length>=7){//如果不是数字则只能输入编辑键if((event.keyCode<48||event.keyCode>57)&&(event.keyCode<96||event.keyCode>105)&&(event.ctrlKey!=true)){returnIsEditKey();}}returntrue;}//判断是否编辑键functionIsEditKey(){switch(event.keyCode){case8://BackspaceKeycase46://DeleteKeycase37://LeftKeycase39://RightKeyreturntrue;default://otherreturnfalse;}}//检查粘贴functionCheckPaste(obj){varresurt,re;//声明变量。varstrCopy=clipboardData.getData("TEXT");//从剪贴板中获取文本。//如果长度>15if(strCopy.length>=15){returnfalse;}//如果总长度>7就进行检查if((strCopy.length+obj.value.length)>7){startIndex=7-obj.value.length;//先将前7个字符粘贴obj.value=obj.value+strCopy.substr(0,startIndex);varstrCheck=strCopy.substr(startIndex);//得到要替换的字符串re=newRegExp("[^0-9]*","g");//创建正则表达式对象。strRepalce=strCheck.replace(re,"");//在字符串strCheck中去掉不是数字的字符//如果总长度>15,则截断字符串if(strRepalce.length+obj.value.length>15){varaddLenth=15-strRepalce.length-obj.value.length;addLenth=(addLenth>0)?addLenth:0;strRepalce=strRepalce.substr(0,addLenth);}obj.value=obj.value+strRepalce;}else{//直接粘贴obj.value=obj.value+strCopy;}returnfalse;//取消粘贴事件。}</script></head><body>After7charthisinputboxcanonlyinputnumber!<br/><inputtype="text"name="txtInput"id="txtIput"onkeydown="returnkeyPress(this);"onPaste="returnCheckPaste(this);"/></body></html>