jQuery의 슬라이더 플러그인을 사용하여 작업하려고합니다. 30402424와 같이 30,402,424와 같은 쉼표로 출력을 형식화해야합니다.jQuery에서 숫자의 서식을 지정하는 간단한 방법
자바 스크립트로 가능하다는 것을 알고 있지만 발견 한 유일한 방법은 매우 오래되었습니다. 나는
jQuery의 슬라이더 플러그인을 사용하여 작업하려고합니다. 30402424와 같이 30,402,424와 같은 쉼표로 출력을 형식화해야합니다.jQuery에서 숫자의 서식을 지정하는 간단한 방법
자바 스크립트로 가능하다는 것을 알고 있지만 발견 한 유일한 방법은 매우 오래되었습니다. 나는
자바 스크립트 자체는 당신이 필요로 숫자 서식을 지원하지 않습니다 ... 그래서 당신이 무슨 뜻인지 볼 수있는 바이올린을 만들었습니다,하지만 일부 인터넷 검색으로 나는 다음과 같은 친숙한 솔루션을 발견 과거에는 사용했지만 더 나은 코드 품질을 위해 다소 수정되었습니다.
function addCommas(numberString) {
numberString += '';
var x = numberString.split('.'),
x1 = x[0],
x2 = x.length > 1 ? '.' + x[1] : '',
rgxp = /(\d+)(\d{3})/;
while (rgxp.test(x1)) {
x1 = x1.replace(rgxp, '$1' + ',' + '$2');
}
return x1 + x2;
}
출처 : http://www.mredkj.com/javascript/numberFormat.html
업데이트 바이올린 : 여기
http://jsfiddle.net/EX5U7/8/은 노골적으로 쉼표 매 3을 추가하는 것보다 훨씬 더 많은 일을 할 수 있도록 자바 스크립트에서 PHP의 number_format
기능을 구현하는 또 다른 솔루션입니다 수 :
function number_format (number, decimals, dec_point, thousands_sep) {
number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function (n, prec) {
var k = Math.pow(10, prec);
return '' + Math.round(n * k)/k;
};
// Fix for IE parseFloat(0.55).toFixed(0) = 0;
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
}
사용법 :의 number_format(123456.789, 2, '.', ',');
결과 123,456.79
올바른 참조를 거쳐 답변에 링크 된 소스의 관련 부분을 포함시킵니다. 스택 오버 플로우시 모든 대답은 링크를 따르지 않아도 이해할 수 있어야합니다. –
+1 정확히 내가 한 일 :-) – ManseUK
메모 해 주셔서 감사합니다. 아직 여기에 너무 많은 질문에 정말로 대답하지 않았습니다! 나는 지금 내 대답을 바로 잡을 것이다. :) –
사용하여 다음 addCommas 방법 :
function addCommas(nStr)
{
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
근무 예 : http://jsfiddle.net/EX5U7/1/
왜 downvote? 나는 근원을 연결하고 일을 하는가? – ManseUK
고려 accounting.js를 사용합니다. 그것은 정규 표현식을 사용하여
서식 번호, 돈, 통화 작은 자바 스크립트 라이브러리입니다.
ui.value = (ui.value).toString().split("").reverse().join("").replace(/(\d{3})(?=\d)/g,"$1,").split("").reverse("").join("")
해결책에 결함이 있습니다. £ 275,579,809,0와 같이 분명히 틀린 숫자를 허용합니다. 2,755,798,090이어야합니다 –
오른쪽 문자열을 교체해야합니다. 자, 이제이 작품 – abuduba
Downvote가 제거되었습니다! –
이것은 복제본입니다.
하지만 당신의 정보를
는 This Question에서 제공하는 솔루션은 나를 편집 할 수 귀하의 JSFiddle$(function() {
$("#slider").slider({
value:100,
min: 0,
max: 5000000000,
step: 1,
slide: function(event, ui) {
$("#amount").val("£" + addCommas(ui.value));
}
});
$("#amount").val("£" + addCommas($("#slider").slider("value")));
});
function addCommas(nStr) {
nStr += '';
var x = nStr.split('.');
var x1 = x[0];
var x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
노력이 :
function formatNumber(n){
n += '';
x = n.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
는하지만이있어 곳에서 기억하지 그것을 사용했다 여기에 : https://github.com/amantur/jquery.ui.counter
Dupe : http://stackoverflow.com/questions/2646385/add-a-thous-with-javascript-or-jquery - 모든 정답 아래 링크 된 질문에서 @ dave1010의 솔루션을 구현합니다 –