Использование регулярных выражений для определения состояния: 9 или 7 ([97]
), за которыми следуют 7 цифр и запятая (\d{7},
) от 0 до 2 раз ({0,2}
), которые охватывают все до числа, которое вы в данный момент пишете, что, в свою очередь,обозначается цифрами 9 или 7 ([97]
), за которыми следуют цифры от 0 до 7 (\d{0,7}
), необязательно (?
).
http://jsfiddle.net/xTRph/
html:
<input type="text" id="sms-sender" />
JavaScript:
var lastGood = ''
$("#sms-sender").bind('keyup',function(e){
if(!$('#sms-sender').val().match(/^([97]\d{7},){0,2}([97]\d{0,7})?$/))
$('#sms-sender').val(lastGood)
else
lastGood = $('#sms-sender').val()
});