zoukankan      html  css  js  c++  java
  • 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 || /.dd$/.test(value))event.returnValue=false">

    8.小数点后只能有最多两位(数字,字母,中文都可输入),可以输入运算符号:
    <input onkeyup="this.value=this.value.replace(/^(-)*(d+).(dd).*$/,'$1$2.$3')">

  • 相关阅读:
    nginx查看配置文件nginx.conf路径
    http://127.0.0.1/thinkphp5/public/index/teacher/delete/id/1.html 这样的URL下,页面收不到get参数
    thinkphp5访问报错 ...with message 'mkdir(): Permission denied' in... 或...failed to open stream: Permission denied' in...
    thinkphp报错No input file specified. (对于隐藏url中的index.php 是如何做到的?)
    收藏网址
    jquery 和 原生js 获取<select><option></option></select>标签的值和文本
    Macbook下MySQL卸载方法
    提示错误 Call to undefined function imagepng() in …
    Mac 安装phpmyadmin提示无法登陆 mysql服务器解决办法
    php把一个字符串分割成字符数组(可以用参数指定数组每个元素字符的长度)
  • 原文地址:https://www.cnblogs.com/Codenewbie/p/3343553.html
Copyright © 2011-2022 走看看