验证使用jQuery和正则表达式

时间:2013-07-15 09:49:18

标签: javascript jquery regex

我需要regular expression以0开头的数字,这个数字的长度是11

我找到了这个数字的正则表达式,但这不是长度而是0开始

$('#myModal #transfer_charge_model_mob').keyup(function () {
            var inputVal = $(this).val();
            var numericReg = /^\d*[0-9](|.\d*[0-9]|,\d*[0-9])?$/;
            if (!numericReg.test(inputVal)) {
                $('#myModal #transfer_charge_model_mob_lbl').text('please enter number');
                $(this).val('');
            }
            else {
                $('#myModal #transfer_charge_model_mob_lbl').text('');
            }
        });

4 个答案:

答案 0 :(得分:2)

您可以在没有正则表达式的情况下执行此操作。

var x = $(this).val();
var y = x * 1;
if(!isNaN(y))
   if (x.charAt(0) === '0' && x.length == 11)
     //do whatever

答案 1 :(得分:2)

你的正则表达式过于复杂:

^0\d{10}$

就足够了。

答案 2 :(得分:1)

将我的评论转换为答案,看看它有多受欢迎

注意on(“change”)而不是keyup

$('#transfer_charge_model_mob').on("change",function () {
   var inputVal = $(this).val();
   var txt = /^0\d{10}$/.test(inputVal)?"":'please enter number';     
   $('#transfer_charge_model_mob_lbl').text(txt);
   if (txt) $(this).val('');
 });

对于Keyup,您可以尝试

Live Demo

$(function() {
  $('#transfer_charge_model_mob')
    .on("change",function () {
       var inputVal = $(this).val();
       var txt = /^0\d{10}$/.test(inputVal)?"":'please enter number';     
       $('#transfer_charge_model_mob_lbl').text(txt);
       //if (txt) $(this).val(''); // Very harsh if a typo
     })
  .on("keyup",function(e) {
     var val = $(this).val(); 
     var reg =  /[^0-9]/g;
     if (val.match(reg)) { 
         $(this).val(val.replace(reg,""));
     }
  });    
});    

答案 3 :(得分:0)

var reg = /^0\d{10}$/;
console.log(reg.test("01111111111"));