これらの番号があります
10999
および8094
および456
そして、私がしたいのは、必要な場合は正しい場所にコンマを追加して、このようにすることです
10,999
および8,094
および456
これらはすべてこの<p class="points">10999</p>
などのようなpタグ内にあります。
できますか?
私はここで他の投稿の助けを借りてそれを試みました http://jsfiddle.net/pdWTU/1/ しかし、それを動作させることができないようです
ありがとう
ジェイミー
[〜#〜] update [〜#〜]
少し混乱し、ここでそれを理解することができました http://jsfiddle.net/W5jwY/1/
それを行うより良い方法のために新しいグローバリゼーションプラグインを見ていきます
ありがとう
ジェイミー
すべてのブラウザで動作します。これで十分です。
function commaSeparateNumber(val){
while (/(\d+)(\d{3})/.test(val.toString())){
val = val.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
}
return val;
}
正規表現のおかげで、コンパクトに、そして要点にこれを書いた。これは単純なJSですが、次のようにjQueryで使用できます。
$('#elementID').html(commaSeparateNumber(1234567890));
または
$('#inputID').val(commaSeparateNumber(1234567890));
Number(10000).toLocaleString('en'); // "10,000"
Timothy Pirezの答えは非常に正しかったのですが、ユーザーがテキストフィールドに入力すると同時に数値をコンマに置き換える必要がある場合は、キーアップ機能を使用することをお勧めします。
$('#textfield').live('keyup', function (event) {
var value=$('#textfield').val();
if(event.which >= 37 && event.which <= 40){
event.preventDefault();
}
var newvalue=value.replace(/,/g, '');
var valuewithcomma=Number(newvalue).toLocaleString('en');
$('#textfield').val(valuewithcomma);
});
<form><input type="text" id="textfield" ></form>
Numeral.js をご覧ください。数値、通貨、パーセンテージをフォーマットでき、ローカライズをサポートしています。
function delimitNumbers(str) {
return (str + "").replace(/\b(\d+)((\.\d+)*)\b/g, function(a, b, c) {
return (b.charAt(0) > 0 && !(c || ".").lastIndexOf(".") ? b.replace(/(\d)(?=(\d{3})+$)/g, "$1,") : b) + c;
});
}
alert(delimitNumbers(1234567890));
最近リリースされたグローバリゼーションプラグインをMicrosoftによるjQueryでご覧ください
toLocaleStringを使用して https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/の参照Number/toLocaleString
function formatComma(value, sep = 0) {
return Number(value).toLocaleString("ja-JP", { style: "currency", currency: "JPY", minimumFractionDigits: sep });
}
console.log(formatComma(123456789, 2)); // ¥123,456,789.00
console.log(formatComma(123456789, 0)); // ¥123,456,789
console.log(formatComma(1234, 0)); // ¥1,234
何らかのローカライズを行っていると推測しているので、 このスクリプト をご覧ください。