如何在javascript中每4个数字插入一个“ - ”?

时间:2017-08-24 00:18:06

标签: javascript

Greetz大家。 今天我试图为我的项目做一件事,我试图在js中做这样的事情(例如.xxxx-xxxx-xxxx-xxxx)。我见过很多人在没有得到任何好的回应的情况下做了同样的问题。

无论如何,任何人都可以帮助我? TY。

3 个答案:

答案 0 :(得分:1)

这是使用正则表达式的快速1班轮

console.log(
    '98347592857390342876592180754234'.replace(/([0-9]{4})/g,'$1-').replace(/-$/,'')
);

输出9834-7592-8573-9034-2876-5921-8075-4234

答案 1 :(得分:0)

我亲自制作了这个小脚本,以便运行与此类似的东西。

//Whatever your string is.
var val = "2323180012421232";
//loop through string and splice in -'s.
for(var b = val.length-4; b > 0; b-=4) {
    //Slice string starting from 0 to b increment, add the "-" then add all other letters that come after b.
    val = val.slice(0, b) + "-" + val.slice(b);
}
//Post the output.
console.log(val);

JSFiddle:https://jsfiddle.net/3t8febmj/

如果您希望以功能形式使用此功能,可以执行以下操作:

function insertCharacters(str) {
    for(var b = str.length-4; b > 0; b-=4) {
        str = str.slice(0, b)+"-"+str.slice(b);
    }
  return str;
};

var val = insertCharacters("2323180012421232");
console.log(val);

JSFiddle:https://jsfiddle.net/vjkde7hh/

答案 2 :(得分:0)

纯粹且易于理解的JS方法:

function chunk(str, n) {
    var ret = [];

    for(var i = 0, len = str.length; i < len; i += n) {
       ret.push(str.substr(i, n))
    }

    return ret;
};

console.log(chunk("123145647897", 4).join('-'));

正则表达式方法:

var formated = "123145647897".replace(/(.{4})/g,"$1-").replace(/-$/, "");
console.log(formated);