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')">

  • 相关阅读:
    Django连接MySQL(二)
    Django框架,python2和python3共存的情况下,创建Django项目
    pycharm破解
    dbutils中实现数据的增删改查的方法,反射常用的方法,绝对路径的写法(杂记)
    Spring中的事物管理,基于spring的bean的配置
    Spring中的事物管理,用 @Transactional 注解声明式地管理事务
    Ajax中GET和POST的区别
    Spring对 JDBC 的支持,JdbcTemplate类的使用
    Spring AOP:面向切面编程,AspectJ,是基于spring 的xml文件的方法
    Spring AOP:面向切面编程,AspectJ,是基于注解的方法
  • 原文地址:https://www.cnblogs.com/Codenewbie/p/3343553.html
Copyright © 2011-2022 走看看