javascript で文字列中の和暦を西暦へ書き換え

DBに和暦を記入する年寄りがいるので、ツールチップ内だけ西暦表示させるのに、javascript の replace 正規表現で、置換文字列を演算

  1. function WarekiToSeireki(s){  
  2.  function WarekiToSeirekiSub(match, gengou/* $1 */, wareki/* $2 */, nen/* $3 */, offset, string){  
  3.   if(wareki == '元'){  
  4.    wareki = 1;  
  5.   }  
  6.   
  7.   if( gengou.match(/(Z|Z|ZZ)/i) ){ // 新元号  
  8.    return (Number(wareki) + 2018) + nen;  
  9.   }else if( gengou.match(/(H|平|平成)/i) ){  
  10.    return (Number(wareki) + 1988) + nen;  
  11.   }else if( gengou.match(/S|昭|昭和/i) ){  
  12.    return (Number(wareki) + 1925) + nen;  
  13.   }else if( gengou.match(/T|大|大正/i) ){  
  14.    return (Number(wareki) + 1911) + nen;  
  15.   }else if( gengou.match(/M|明|明治/i) ){  
  16.    return (Number(wareki) + 1867) + nen;  
  17.   }  
  18.  }  
  19.   
  20.  return s.replace(/(H|平|平成|S|昭|昭和|T|大|大正|M|明|明治)([0-9]+|元)(\/|年)/gi, WarekiToSeirekiSub);  
  21. }  
和暦から西暦は、月日は必要ないが、逆は年の途中で切り替わるので月日が必要になる

コメント