HTML 限制文本框只能輸入特定字符(比如數字 onkeyup+onafterpaste)


正則表達式1

<td><asp:TextBox ID="TextBox_username" Width="250" runat="server" class="inputtext" onKeyUp="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')"></asp:TextBox></td>

首先這是個正則式驗證,用來驗證輸入值的規則;

當輸入值的鍵盤抬起時觸發這個事件。this.value表示此輸入框的值,/\D/g為正則表達式,用來匹配所有非數字字符;

此句功能為:將輸入值為非數字的字符替換為空;


正則表達式2
<input type="text" name="code" id="code" onkeyup="this.value=code.value.replace(/[^0-9]/g,'')"  onafterpaste="this.value=code.value.replace(/[^0-9]/g,''" maxlength="10">中/[^0-9]/g這里的g是何含義?onafterpaste有何用途?

1./[^0-9]/g是正則表達式,這里加g是表示會替換字符串中所有出現和正則表達式模式匹配的字串。如過不加的話,會只替換出現的第一個匹配。
比如:字符串 thisthisthat,用/this/正則去替換:
"thisthisthat".replace(/this/,"that")結果是:thatthisthat //只替換了第一個
但用/this/g去替換結果則是:thatthatthat //所有的this都被替換了。
2.onafterpaste表示在粘貼內容后觸發相應的操作。這個例子里是為了在往文本框粘貼后替換所有的非數字字符。


正則表達式限制輸入框只能輸入數字 代碼如下: 

<input type="text" onkeyup="this.value=this.value.replace(/[^\d]/g,'') " onafterpaste="this.value=this.value.replace(/[^\d]/g,'') " name="f_order" value="1"/> 

其中,onafterpaste防止用戶從其它地方copy內容粘貼到輸入框 



輸入框只能輸入字母和下橫線的正則表達式 
<input onkeyup="this.value=this.value.replace(/[^_a-zA-Z]/g,'')" onpaste="this.value=this.value.replace(/[^_a-zA-Z]/g,'')"> 


輸入框只能輸入字母數字和下橫線的正則表達式 
<input onkeyup="this.value=this.value.replace(/[^\w]/g,'')" onpaste="this.value=this.value.replace(/[^\w]/g,'')"> 
或 
<input onkeyup="this.value=this.value.replace(/[\W]/g,'')" onpaste="this.value=this.value.replace(/[\W]/g,'')">

用正則表達式限制文本框只能輸入數字,小數點,英文字母,漢字等各類代碼
1.文本框只能輸入數字代碼(小數點也不能輸入)
<input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')">

2.只能輸入數字,能輸小數點.
<input onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')">
<input name=txt1 onchange="if(/\D/.test(this.value)){alert('只能輸入數字');this.value='';}">

3.數字和小數點方法二
<input type=text t_value="" o_value="" onkeypress="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onkeyup="if(!this.value.match(/^[\+\-]?\d*?\.?\d*?$/))this.value=this.t_value;else this.t_value=this.value;if(this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?)?$/))this.o_value=this.value" onblur="if(!this.value.match(/^(?:[\+\-]?\d+(?:\.\d+)?|\.\d*?)?$/))this.value=this.o_value;else{if(this.value.match(/^\.\d+$/))this.value=0+this.value;if(this.value.match(/^\.$/))this.value=0;this.o_value=this.value}">

4.只能輸入字母和漢字
<input onkeyup="value=value.replace(/[\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[\d]/g,''))" maxlength=10 name="Numbers">

5.只能輸入英文字母和數字,不能輸入中文
<input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')">

6.只能輸入數字和英文
<font color="Red">chun</font>
<input onKeyUp="value=value.replace(/[^\d|chun]/g,'')">

7.小數點后只能有最多兩位(數字,中文都可輸入),不能輸入字母和運算符號:

<input onKeyPress="if((event.keyCode<48 || event.keyCode>57) && event.keyCode!=46 || /\.\d\d$/.test(value))event.returnValue=false">

8.小數點后只能有最多兩位(數字,字母,中文都可輸入),可以輸入運算符號:
<input onkeyup="this.value=this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/,'$1$2.$3')">


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM