Advertisement
bongzilla

Untitled

Jun 15th, 2021
939
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     function formatNumber(n) {
  2.       // format number 1000000 to 1,234,567
  3.       return n.replace(/\D/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, " ")
  4.     }
  5.  
  6.  
  7.     function formatCurrency(input, blur) {
  8.       // appends $ to value, validates decimal side
  9.       // and puts cursor back in right position.
  10.      
  11.       // get input value
  12.       var input_val = input.val();
  13.      
  14.       // don't validate empty input
  15.       if (input_val === "") { return; }
  16.      
  17.       // original length
  18.       var original_len = input_val.length;
  19.  
  20.       // initial caret position
  21.       var caret_pos = input.prop("selectionStart");
  22.        
  23.       // check for decimal
  24.       if (input_val.indexOf(".") >= 0) {
  25.  
  26.         // get position of first decimal
  27.         // this prevents multiple decimals from
  28.         // being entered
  29.         var decimal_pos = input_val.indexOf(".");
  30.  
  31.         // split number by decimal point
  32.         var left_side = input_val.substring(0, decimal_pos);
  33.         var right_side = input_val.substring(decimal_pos);
  34.  
  35.         // add commas to left side of number
  36.         left_side = formatNumber(left_side);
  37.  
  38.         // validate right side
  39.         right_side = formatNumber(right_side);
  40.        
  41.         // On blur make sure 2 numbers after decimal
  42.         if (blur === "blur") {
  43.           right_side += "00";
  44.         }
  45.        
  46.         // Limit decimal to only 2 digits
  47.         right_side = right_side.substring(0, 2);
  48.  
  49.         // join number by .
  50.         input_val = left_side + "." + right_side;
  51.  
  52.       } else {
  53.         // no decimal entered
  54.         // add commas to number
  55.         // remove all non-digits
  56.         input_val = formatNumber(input_val);
  57.         // input_val = "$" + input_val;
  58.        
  59.         // final formatting
  60.         if (blur === "blur") {
  61.           input_val += ".00";
  62.         }
  63.       }
  64.      
  65.       // send updated string to input
  66.       input.val(input_val);
  67.  
  68.       // put caret back in the right position
  69.       var updated_len = input_val.length;
  70.       caret_pos = updated_len - original_len + caret_pos;
  71.       // input[0].setSelectionRange(caret_pos, caret_pos);
  72.     }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement