0

我需要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

4 回答 4

2

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

var x = $(this).val();
var y = x * 1;
if(!isNaN(y))
   if (x.charAt(0) === '0' && x.length == 11)
     //do whatever
于 2013-07-15T09:55:10.947 回答
2

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

^0\d{10}$

就足够了。

于 2013-07-15T09:57:04.143 回答
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,您可以尝试

现场演示

$(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,""));
     }
  });    
});    
于 2013-07-15T11:20:42.460 回答
0
var reg = /^0\d{10}$/;
console.log(reg.test("01111111111"));
于 2013-07-15T09:55:15.367 回答