我想格式化使用javascript/jquery的<input>
框。動態輸入框格式化
目標 - 當用戶鍵入時,在每第三個字符後自動添加連字符。
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">
你的代碼只加連字符2倍 – gurvinder372
是啊,我要指出的是,串行號碼只有9位數字。 :) – magreenberg
第一行不需要將值分配給輸入控件 –