jQuery以特定格式格式化输入

时间:2017-11-26 15:15:15

标签: jquery

我正在尝试通过美国电话号码格式的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;
&#13;
&#13;

1 个答案:

答案 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>