Я видел много функций, которые форматируют телефон или номер (запятую и десятичные знаки) в сообществе stackflow, как этот вопрос here и другие. Вот что я хочу:JavaScript RegExp для автоматического форматирования Образец
Шаг 1: Поддерживать библиотеки для моделей, как это:
var library = {
fullDate : {
pattern : /^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/,
error : "Invalid Date format. Use YYYY-MM-DD format."
},
fullDateTime : {
pattern : /^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2} [0-9]{1,2}:[0-9]{1,2}$/,
error : "Invalid DateTime format. Use YYYY-MM-DD HH:MM (24-hour) format."
},
tel : {
pattern : /^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/,
error : "Invalid Telephone format."
}
};
Шаг 2: Автоматически добавить символ, как они печатают. Например, добавьте -
после 4 цифр в Date.
У меня есть текстовое поле сказать:
<input type="text" data-validate="fullDate" placeholder="YYYY-MM-DD"/>
И возможно место, чтобы начать сценарий как:
$('body').on('keyup','input',function(){
var validate = $(this).data('validate');
var pattern = library[validate].pattern;
//Some more steps here....
});
Но я не могу сделать дальше, потому что я новичок в RegExp. Вот startup fiddle. Кто угодно?
Дальнейшие Примечания: Я был в состоянии проверить с помощью следующих функций, но то, что я хочу, чтобы автоматически сделать шаблон:
function validate(libraryItem, subject){
var item = library[libraryItem];
if(item !== undefined){
var pattern = item.pattern;
if(validatePattern(pattern, subject)){
return true;
} else {
return item.error;
}
}
return false;
}
function validatePattern(pattern, subject){
return pattern.test(subject);
}
Регулярные выражения для проверки правильны, но они не подходят для внесения предложений ... для этого вам понадобится какой-то государственный автомат. –