sourcecode

jQuery에서 숫자에 쉼표를 더합니다.

codebag 2023. 10. 30. 20:58
반응형

jQuery에서 숫자에 쉼표를 더합니다.

저는 이 번호를 가지고 있습니다.

10999그리고.8094그리고.456

제가 원하는 것은 쉼표가 필요할 경우 적절한 위치에 쉼표를 추가하는 것입니다. 그래서 이렇게 보입니다.

10,999그리고.8,094그리고.456

이것들은 모두 이와 같은 ptag 안에 있습니다.<p class="points">10999</p>기타.

할 수 있을까요?

다른 게시물 http://jsfiddle.net/pdWTU/1/ 의 도움을 받아 여기서 시도해 보았지만 작동이 되지 않는 것 같습니다.

감사해요.

제이미

갱신하다

좀 어설프게 굴어서 여기 http://jsfiddle.net/W5jwY/1/ 에서 알아냈습니다.

새로운 Globalization 플러그인을 통해 더 나은 방법을 모색해 보겠습니다.

감사해요.

제이미

모든 브라우저에서 작동하며, 필요한 것은 이것뿐입니다.

  function commaSeparateNumber(val){
    while (/(\d+)(\d{3})/.test(val.toString())){
      val = val.toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
    }
    return val;
  }

이것을 간결하게 쓰기 위해 썼으며, 요점은 regex 덕분입니다.이것은 곧은 JS이지만 jQuery에서 다음과 같이 사용할 수 있습니다.

$('#elementID').html(commaSeparateNumber(1234567890));

아니면

$('#inputID').val(commaSeparateNumber(1234567890));

하지만 더 깨끗하고 유연한 것이 필요하다면 말입니다.아래 코드는 소수점을 올바르게 고정하고 선행 0을 제거하며 무제한으로 사용할 수 있습니다.댓글에 @baacke 감사합니다.

  function commaSeparateNumber(val){
   val = val.toString().replace(/,/g, ''); //remove existing commas first
   var valRZ = val.replace(/^0+/, ''); //remove leading zeros, optional
   var valSplit = valRZ.split('.'); //then separate decimals
    
   while (/(\d+)(\d{3})/.test(valSplit[0].toString())){
    valSplit[0] = valSplit[0].toString().replace(/(\d+)(\d{3})/, '$1'+','+'$2');
   }

   if(valSplit.length == 2){ //if there were decimals
    val = valSplit[0] + "." + valSplit[1]; //add decimals back
   }else{
    val = valSplit[0]; }

   return val;
  }

jQuery에서는 다음과 같이 사용합니다.

$('.your-element').each(function(){
  $(this).html(commaSeparateNumber($(this).html()));
});

여기 jsFiddle.

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>

최근 출시된 마이크로소프트의 jQuery에 대한 Globalization 플러그인을 살펴봅니다.

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

현지화 작업을 하고 계신 것 같은데, 이 대본을 보세요.

를 사용하여 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString 에서 LocaleString 참조

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

다른 접근 방식:

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;
}
var a  = addCommas(10000.00);
alert(a);

또 다른 놀라운 플러그인: http://www.teamdf.com/web/jquery-number-format/178/

또 다른 방법:

function addCommas(n){
  var s = "",
      r;

  while (n) {
    r = n % 1000;
    s = r + s;
    n = (n - r)/1000;
    s = (n ? "," : "") + s;
  }

  return s;
}

alert(addCommas(12345678));

여기 @Timothy Perez에게 댓글로 제공된 @baacke의 fiddle의 커피 스크립트 버전이 있습니다.

class Helpers
    @intComma: (number) ->
        # remove any existing commas
        comma = /,/g
        val = number.toString().replace comma, ''

        # separate the decimals
        valSplit = val.split '.'

        integer = valSplit[0].toString()
        expression = /(\d+)(\d{3})/
        while expression.test(integer)
            withComma = "$1,$2"
            integer = integer.toString().replace expression, withComma

        # recombine with decimals if any
        val = integer
        if valSplit.length == 2
            val = "#{val}.#{valSplit[1]}"

        return val

언급URL : https://stackoverflow.com/questions/3883342/add-commas-to-a-number-in-jquery

반응형