JQuery 限制文本输入只能输入数字(可自定义正则表达式)

摘要:
varJVerify={role:{number:/[0-9/]/,decimal:/[0-9./]/,code:/[0-9A-Z]/},Verify:function(){for(varpropinJVerify.role){$("[role^='"+prop+"']").each(function(){varobj=$(this);varvalues=obj.attr("role").spli
var JVerify ={
    role: { number: /[0-9/]/, decimal: /[0-9./]/, code: /[0-9A-Z]/},
    Verify: function() {
        for (var prop inJVerify.role) {
            $("[role^='" + prop + "']").each(function() {
                var obj = $(this);
                var values = obj.attr("role").split("-");
                var length = 16;
                if (values.length > 1) {
                    length = values[1];
                }
                obj.attr("maxlength", length);
                obj.bind("input propertychange", function() {
                    var input = $(this);
                    var text =input.val();
                    input.val("");
                    var content = "";
                    var attr = $(this).attr("role");
                    var regex = JVerify.role[values[0]];
                    var isDot = false;
                    var array = attr.split("-");
                    var number =length;
                    if (array.length == 3) {
                        number = Number(array[2]);
                    }
                    for (var i = 0, index = 0; i < text.length; i++) {
                        if (text[0] == ".") {
                            continue;
                        }
                        if (text[i] == ".") {
                            if (isDot == false) {
                                content += ".";
                                isDot = true;
                                index =i;
                            }
                            continue;
                        }
                        if ((i - 0 == 1 && text[0] == "0" && text[i] == "0") || isDot && (index + number <i)) {
                            continue;
                        }
                        if(regex.test(text[i])) {
                            content +=text[i];
                        }
                    }
                    input.val(content);
                }).blur(function() {
                    var value = $(this).val();
                    if (value[value.length - 1] === ".") {
                        $(this).val(value.substr(0, value.length - 1));
                    }
                });
            })
        }
    }
}

如只需输入小数,屏蔽非数字字符,在html中的input元素input添加属性role=“decimal-6-1”即可,尾数6为input的输入长度,1的意思为保留1位小数,调用代码如下:

<input role="decimal-6-1"type="text" />
JVerify.Verify();

如需自定义正则表达式,给JVerify.role添加属性即可,如下所示:

JVerify.role.myRegex = /[a-z]/;

免责声明:文章转载自《JQuery 限制文本输入只能输入数字(可自定义正则表达式)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【Swift】UILabel的简单操作方法hdu 4614 线段树 二分下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

SPark SQL 从 DB 读取数据方法和方式 scala

import org.apache.spark.sql.SQLContext import org.apache.spark.SparkConf import org.apache.spark.SparkContext import java.util.HashMap import org.apache.spark.sql.Row import org.a...

nginx后端节点健康检查

一、nginx健康检查的三种方式 1、ngx_http_proxy_module 模块和ngx_http_upstream_module模块(自带) 官网地址:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_next_upstream 2、nginx_upstream_c...

jquery定位

1、$("div").offset().left ; div到文档的左距离(offset() 方法返回或设置匹配元素相对于文档的偏移)$("div").offset().top; div到文档顶端的距离$("div").offset().top-$(window).scrollTop; div到可视窗口顶端的距离(用总的距离-滚动的距离可得到) 2、$(...

python文件路径分隔符的详细分析

写了挺久的python,文件分隔符的掌握肯定是必须的,但是我之前写的都是不规范的文件路径分隔符,例如‘’C:User emppython.txt’,一直都没有报过错。也不知为啥,今天查阅资料才知道自己写的都是些假的python,所以就在此记录一下。 主要是需要考虑分隔符的问题:在Windows系统下的分隔符是: (反斜杠)。 在Linux系统下的分隔符是:...

rpm安装时报error: can't create transaction lock on /var/lock/rpm/transaction的处理

安装relocatable的rpm时候,通常会碰到下面的错误: error: can't create transaction lock on /var/lock/rpm/transaction 原因是不能创建锁,解决办法如下: --define"_rpmlock_path$rpmdbPath/transaction" 指定这个_rpmlock_path...

密码验证规则-正则表达式

string pattern = @"^(?=.*[0-9])(?=.*[!@#$%^&*])[0-9a-zA-Z!@#$%^&*0-9]{10,}$"; string msg = "Password should have one numeral and one special character""...