Я пытаюсь отформатировать поле <input>
с помощью javascript/jquery.Форматирование форматирования динамического ввода
Цель - Как пользователь вводит, автоматически добавляет дефисы после каждого третьего символа.
123123123 becomes 123-123-123
У меня есть рабочий код, но он очень медленный и неуклюжий. Я ищу рекомендации о том, как улучшить код
$('#serial').keyup(function(){
$(this).val($(this).val().trim());
var str = $(this).val();
var newStr = str.replace(/-/g, "");
var valuesArray = newStr.split("");
var newVal = "";
while (i = valuesArray.shift()){
if(newVal.length === 3){
newVal += "-";
} else if (newVal.length === 7){
newVal += "-";
}
newVal += i;
}
$(this).val(newVal);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<label for="serial">Type something magical</label>
<input type="text" id="serial" name="serial">
код только при добавлении hypen 2 раза – gurvinder372
Да, я должен отметить, что сериал число составляет всего 9 цифр. :) – magreenberg
первой строке не нужно присваивать значение входному управлению –