2013-07-15 6 views
0

мне нужно regular expression для номера началось с 0, а длина этого числа 11Проверка с помощью JQuery и регулярные выражения

я нахожу это регулярное выражение для чисел, но это не по длине и 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(''); 
      } 
     }); 
+3

/^ 0 \ d {10} $/будет моей первой попыткой, но теперь я вижу, что вы используете KeyUp. Шахта будет использоваться при изменении или размытии – mplungjan

+0

@mplungjan Это будет лучший подход. Потому что для каждой клавиши функция будет выполнена. – Praveen

+0

@mplungjan Ваш комментарий ответил на этот вопрос :) так сделайте это как ответ. – Praveen

ответ

2

Вы можете сделать это без регулярного выражения.

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

У = x * 1 и isNaN() проверьте, было ли это число или нет. умножение строки создаст NaN, а часть «набирает» обрабатывается с помощью клавиши – JTravakh

+0

, но z.length() нет. И я считаю, что это z.length – mplungjan

+0

да, вы правы, исправлены. – JTravakh

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

Отличное предложение - идентично моему комментарию – mplungjan

+0

@mplungjan На самом деле, извините. Как только я увидел этот вопрос, я пытался в jsfiddle. Как только я его получил, не загружая ваши комментарии, я отправил их в качестве ответа. Позже я увидел ваши комментарии и ответил. – Praveen

+0

Нет проблем:) ... – mplungjan

2

Вы усложненной ваше регулярное выражение:

^0\d{10}$ 

является достаточными полномочиями.

+1

Отличное предложение - идентично моему комментарию – mplungjan

+1

Извинения. Я не заметил ваш комментарий, когда писал это! –

1

Преобразование мой комментарий к ответу, видя, насколько популярен он был

Отметьте на ("изменить"), а не 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,"")); 
    } 
    });  
});  
+0

+1 Я уже поддержал ваш комментарий, и теперь ответ :) – Praveen

+0

Спасибо - обновлено с помощью ключевой версии – mplungjan

+0

Мне нравится ваш .on («keyup»), ограничивающий вводимые алфавиты. – Praveen

Смежные вопросы