英数字の全角半角変換

全角英数字⇒半角

全角英数字を半角に変換する

テスト 変換結果 :
CODE
Javascript

   //全角英数字を半角にする
   function zen2han(val){
      var halfVal = val.replace(/[!-~]/g,
       function( tmpStr ) {
         return String.fromCharCode( tmpStr.charCodeAt(0) - 0xFEE0 );
       }
     );
     // 文字コードシフトで対応できない文字の変換
     return halfVal.replace(/”/g, "\"")
       .replace(/’/g, "'")
       .replace(/‘/g, "`")
       .replace(/¥/g, "\\")
       .replace(/ /g, " ")
       .replace(/〜/g, "~");
   }
     

半角英数字を全角に変換する

テスト 変換結果 :
CODE
Javascript

    //半角英数字を全角にする
    function han2zen(val){
       var fullVal = val.replace(/[A-Za-z0-9]/g,
        function(tempStr) {
         return String.fromCharCode(tempStr.charCodeAt(0) + 65248);
       }
      );
      return fullVal;
    }
     

文字列の数字を編集

文字列の数字にカンマを入れる

テスト 変換結果 :
CODE
Javascript

   //カンマ挿入関数
   function prtf(str)
   {
    var dec = str.lastIndexOf(".",str.length);
    var s = str;
    var tail = "";
    if(dec != -1){  //<--小数点以下を逃がす
      tail = str.substring(dec, str.length);
      s = str.substring(0,dec);
    }
    return f(s) + tail;
   }
     

文字列の数字のカンマを削除する

テスト 変換結果 :
CODE
Javascript

   //カンマ削除関数
   function f(str)
   {
    var cond = str.indexOf(",",0) == -1;
    var s = str.substring(str.length-3,str.length);
    if(f.arguments[1] != null) s+=f.arguments[1];
    if(str.length>3){
      if(cond) s = ","+s;  //<--区切り文字を挿入
      return f(str.substring(0,str.length-4+cond), s);
    }
    else return s.substring(0,2)=="-," ? "-"+s.substring(2,s.length): s;
   }
     

四捨五入する

四捨五入の位置
0:小数点以下1位で、1:10の位、2:100の位、-1:小数点以下1位に

テスト 四捨五入の位置 変換結果 :
CODE
Javascript

   // 四捨五入する
   Math.round = function (num,point)
   {
    if(isNaN(num) && isNaN(point))
    {
     return NaN;
    }
    if(!point)
    {
     return Math.round2(num);
    }
    var place = Number('1e+'+Math.abs(point));
    if(point > 0)
    {
     num = Math.round2(Math.floor2((num/place)*10)/10)*place;
    }
    if(point < 0)
    {
     num = Math.round2(num*place)/place;
    }
    return num;
   }
   

切り捨て

切り捨ての位置
0:小数点以下1位で、1:10の位、2:100の位、-1:小数点以下1位に

テスト 切り捨ての位置 変換結果 :
CODE
Javascript

   //floorオーバーライド(切捨て)
   Math.floor = function (num,point)
   {
    if(isNaN(num) && isNaN(point))
    {
     return NaN;
    }
    if(!point)
    {
     return Math.floor2(num);
    }
    var place = Number('1e+'+Math.abs(point));
    if(point > 0)
    {
     num = Math.floor2(Math.floor2((num/place)*10)/10)*place;
    }
    if(point < 0)
    {
     num = Math.floor2(num*place)/place;
    }
    return num;
   }
     

切り上げ

切り上げの位置
0:小数点以下1位で、1:10の位、2:100の位、-1:小数点以下1位に

テスト 切り捨ての位置 変換結果 :
CODE
Javascript

    //ceilオーバーライド(切り上げ)
    Math.ceil = function (num,point)
    {
     if(isNaN(num) && isNaN(point))
     {
      return NaN;
     }
     if(!point)
     {
      return Math.ceil2(num);
     }
     var place = Number('1e+'+Math.abs(point));
     if(point > 0)
     {
      num = Math.ceil2(Math.floor2((num/place)*10)/10)*place;
     }
     if(point < 0)
     {
      num = Math.ceil2(num*place)/place;
     }
     return num;
    }