2015-07-16 2 views
0

я не имею не имеют проблем с регулярным выражением при проверке контакта нет .. не могу определить, что я делаю неправильно .. код я использую, как показано нижерегулярное выражение вопрос при проверке контакта не

$('#contact_no').bind('keypress', function (event) { 
     var regex = new RegExp("^[+0-9\b]"); 
     var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
     if (!regex.test(key)) { 
      event.preventDefault(); 
      return false; 
     } 
    }); 

, что я не хочу, не начинается с + (знак), и он является обязательным пользователь может ввести+ xxxxxxxxxx или xxxxxxxxxx и + (знак) происходит только один раз после 1-го положение после этого + (знак) отключен.

ответ

0

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

var regex = /^\+?[0-9]+$/; 

Нет необходимости использовать RegExp объект здесь, как вы можете использовать регулярное выражение буквального делать свою работу.

Это регулярное выражение позволяет по одному необязательному + при запуске, за которым следуют 1 или более цифр.


Update:

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

Вы можете использовать:

$('#contact_no').bind('submit focusout', function (event) { 
     var regex = /^\+?\d+$/; 
     var key = $('#contact_no').val(); 
     if (!regex.test(key)) { 
      event.preventDefault(); 
      console.log("Invalid value: " + key); 
      return false; 
     } 
}); 

JSFiddle Demo

+0

если я нажимаю +, то он не работает .. номер отпечатаны т.е. XXXXXXXXXX (рабочий), но + XXXXXXXXXX не работает .. – viotile

+0

'+ 123456' и '123456' оба должны работать с этим. Можете ли вы напечатать 'key' непосредственно перед вызовом функции' test' и посмотреть, какая строка ввода. – anubhava

+0

это будет pring, который нажимает символ .. ** ie .. 123 + -] ** каждая клавиша, которую я нажимаю .. – viotile

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