在jquery中添加破折号

时间:2016-12-03 17:13:15

标签: jquery

我想要做的是尝试修改字符串,如果我输入11111111应该被修改为

11-11-1111

<input id="6" />

这是我的jquery代码

$("#6").on('keyup',function(e)
        {
          this.value = this.value.replace(/[^0-9\.|-]/g,'');
          if($(this).val().length == 2)
          {
            $("#6").val($("#6").val()+'-');
            if($(this).val().length == 2)
            {
              $("#6").val($("#6").val()+'-');
            }
          }
        });

它是在前两位数之后添加-但不是之后。

1 个答案:

答案 0 :(得分:0)

使用此代码:

        var cost = "";
        $('#6').keyup(function(){
            var cost_designed = $('#6').val();
            var nums = unseparate_nums(cost_designed);
            cost = "";
            $('#6').val(separate_nums(nums));
        });

        function unseparate_nums(nums) {
            var nums_ = "";
            while (true) {
                if (nums.length > 0) {
                    if (nums.substr(0,1) != "-") {
                        nums_ = nums_ + nums.substr(0,1);
                        nums = nums.substr(1);
                    } else {
                        nums = nums.substr(1);
                    }
                } else {
                    return nums_;
                }
            }
        }

        function separate_nums(nums) {
            if (nums.length > 2) {
                cost = "-" + nums.substr(-2) + cost;
                separate_nums(nums.substr(0, nums.length-2));
                return cost;
            } else {
                cost = nums + cost;
                return cost;
            }
        }