分割输入掩码数集的长度

时间:2015-08-25 20:38:30

标签: javascript string-formatting

我如何以不同的方式分割数字,例如XXX-XXX-XXXX?

String.prototype.toCardFormat = function () {
    return this.replace(/[^0-9]/g, "").substr(0, 16).split("").reduce(cardFormat, "");
    function cardFormat(str, l, i) {
        return str + ((!i || (i % 4)) ? "" : "-") + l;
    }
};

jsfiddle

1 个答案:

答案 0 :(得分:0)

您需要更改附加-的条件。上面,它是每4个字符。在这里,它是在第3和第6之后:

String.prototype.toCardFormat = function() {
  return this.
    replace(/[^0-9]/g, "").
    substr(0, 16).
    split("").
    reduce(cardFormat, "");

  function cardFormat(str, l, i) {
    return str + 
           (((i == 3) || (i == 6)) ? "-" : "") + 
           l;
  }
};

var st = "1234567890";

console.log(st.toCardFormat());