我正在尝试通过美国电话号码格式的jQuery格式化数字。这是(111) 111 1111
,但它不允许我删除它也是添加第11位而不是删除它。有人可以帮忙吗?
$("#no").keypress(function(e) {
var value = $(this).val();
if(value.length <= 10) {
var first = "(" + value[0]+value[1]+value[2] + ")" + " " + value[3]+value[4]+value[5]+ " " + value[6]+value[7]+value[8]+value[9];
$(this).val(first);
$("#no_span").html(first);
e.preventDefault();
}
if(value.length > 10) {
$(this).val($("#no_span").html());
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="no" maxlimit="14"/>
<span id="no_span"></span>
&#13;
答案 0 :(得分:2)
试试这个,我使用switch语句为数字添加特殊字符和空格。 if语句在10个字符以上时显示格式化数字。希望这是你想要的,如果你需要一些不同的功能让我知道。
$("#no").on('keyup', function()
{
var value = $(this).val().split('')
var output = ''
for (var i = 0; i < value.length; i++) {
switch (i) {
case 0: {
output += '(' + value[i];
break;
}
case 2: {
output += value[i] + ') ';
break;
}
case 5: {
output += value[i] + ' ';
break;
}
default: output += value[i]
}
}
if (value.length >= 10)
$('#no_span').html(output)
else
$('#no_span').html('')
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="no" maxlimit="14"/>
<span id="no_span"></span>