jquery简单的文本框输入限制

时间:2022-12-08 21:16:12
//原理,默认遍历传入的选择器内的input[type="text"]; 获取input的data-rule属性,

data-rule可以使用函数里已定义的内容,

例如:<input type="text" data-rule="d">;

也可以写正则,

例如:<input type="text" data-rule="/[^\d]/g">;

 

function inputLimit(obj){

 

  var rules = {
    "d": /[^\d]/g, //纯数字
    "d.": /[^\d.]/g, //数字,点
    "d_": /[^\d.]/g, //数字,下划线
    "bh": /[^\d|a-z|A-Z]/g, //数字字母
    "sfz": /[^\d|x|X]/g, //身份证
    "dh": /[^\d-+]/g, //手机或座机
    "mm": /[^\w.]/g, //数字,点,下划线,字母
    "mail": /[^\d._@|a-z|A-Z]/g, //邮箱
    "zh": /[^\u4e00-\u9fa5]/g, //中文
    "zh_en": /[^\u4e00-\u9fa5|a-z|A-Z]/g, //中文或英文
    "code": /[^\w-]/g //组织机构代码
  };
  $(obj).delegate('input[type="text"]', 'input propertychange', function () {
    var $t = $(this),
      rule = $t.attr('data-rule') || '';
    if (rule != '') {

      var _rule = rules[rule] ? rules[rule] : rule,
        $v = $t.val().replace(_rule, '');

      $t.val($v);
    }
  });
}

//执行函数,给表单form下面的input输入框添加输入限制

inputLimit('form');