2017-08-24 5 views
0

こんにちは皆さん。 今日私は私のプロジェクトのために何かをしようとしていました。私はjsの中でこのようなことをしようとしていました(例えば、xxxx-xxxx-xxxx-xxxx)。私は良い反応を得ずに私の同じ質問をした多くの人を見ました。javascriptで4つの数字ごとに ' - 'を挿入するにはどうしたらいいですか?

とにかく誰でも私を助けることができますか? ty。

+5

あなたはまだ何をしようとしましたか? – tadman

+0

簡単な方法がたくさんあります。 4で数えるループを使うこともできますし、正規表現を使って文字列を分割し、 '.join( ' - ')'を使うこともできます。 – Barmar

答えて

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/

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);

1

は、正規表現

console.log(
 
    '98347592857390342876592180754234'.replace(/([0-9]{4})/g,'$1-').replace(/-$/,'') 
 
);
を使用してクイック1つのライナーです

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

関連する問題