带有逗号和点的价格数字脚本



嗨,伙计们,我正在寻找一个脚本,该脚本用逗号和点分隔千 十进制 2 与 00 示例 2,800,000.00 并且只允许使用 0 到 9 和逗号 + 点

        <div id="item-post-price" class="item-post-price">     
          <label class="control-label" for="price">
            <?php _e('Price', 'ctg_housing'); ?>
          </label>
          <?php ItemForm::price_input_text(); ?>
        </div>

我已经尝试过这个脚本

<script type="text/javascript">
  $('#price').bind('hide-price', function(){
    $('.control-group-price').hide();
  });
  $('#price').bind('show-price', function(){
    $('.control-group-price').show();
  });
  <?php if(osc_locale_thousands_sep()!='' || osc_locale_dec_point() != '') { ?>
  $().ready(function(){
    $("#price").blur(function(event) {
  var price = $("#price").prop("value");
  <?php if(osc_locale_thousands_sep()!='') { ?>
  while(price.indexOf('<?php echo osc_esc_js(osc_locale_thousands_sep());  ?>')!=-1) {
    price = price.replace('<?php echo osc_esc_js(osc_locale_thousands_sep());  ?>', '');
    }
  <?php }; ?>
  <?php if(osc_locale_dec_point()!='') { ?>
  var tmp = price.split('<?php echo osc_esc_js(osc_locale_dec_point())?>');
  if(tmp.length>2) {
    price = tmp[0]+'<?php echo osc_esc_js(osc_locale_dec_point())?>'+tmp[1];
    }
    <?php }; ?>
      $("#price").prop("value", price);
    });
  });
  <?php }; ?>
</script> 

谢谢

我做了一个将值转换为字符串的PHP函数。

function cnvrt($number)
{
   $no = round($number);
   $point = round($number - $no, 2) * 100;
   $hundred = null;
   $digits_1 = strlen($no);
   $i = 0;
   $str = array();
   $wordsWEB = array('0' => '', '1' => 'one', '2' => 'two',
    '3' => 'three', '4' => 'four', '5' => 'five', '6' => 'six',
    '7' => 'seven', '8' => 'eight', '9' => 'nine',
    '10' => 'ten', '11' => 'eleven', '12' => 'twelve',
    '13' => 'thirteen', '14' => 'fourteen',
    '15' => 'fifteen', '16' => 'sixteen', '17' => 'seventeen',
    '18' => 'eighteen', '19' =>'nineteen', '20' => 'twenty',
    '30' => 'thirty', '40' => 'forty', '50' => 'fifty',
    '60' => 'sixty', '70' => 'seventy',
    '80' => 'eighty', '90' => 'ninety');
   $digits = array('', 'hundred', 'thousand', 'lakh', 'crore');
   while ($i < $digits_1) 
   {
     $divider = ($i == 2) ? 10 : 100;
     $number = floor($no % $divider);
     $no = floor($no / $divider);
     $i += ($divider == 10) ? 1 : 2;
     if ($number) {
        $plural = (($counter = count($str)) && $number > 9) ? 's' : null;
        $hundred = ($counter == 1 && $str[0]) ? '' : null;
        $str [] = ($number < 21) ? $wordsWEB[$number] .
            " " . $digits[$counter] . $plural . " " . $hundred
            :
            $wordsWEB[floor($number / 10) * 10]
            . " " . $wordsWEB[$number % 10] . " "
            . $digits[$counter] . $plural . " " . $hundred;
     } else $str[] = null;
   }
  $str = array_reverse($str);
  $result = implode('', $str);
  $points = ($point) ?    "." . $wordsWEB[$point / 10] . " " . $wordsWEB[$point = $point % 10] : '';
  return $result." rupees only";
}
 echo cnvrt(9875);
?>

在这里测试这个函数。只需复制和粘贴。

我希望这有所帮助。

如果要

显示不同的数字格式(如德语或英语数字格式),只需执行以下一些操作:

switch (lang) {
        case "de":
            return value.toString().replace(".", "").replace(",", ".");
        case "en":
            return value.toString().replace(",", "");
    }

最新更新