javascriptで、元号の"１年"を"元年"と表示させるには


下記のコードは、javascriptで"和暦"と"西暦",及び"干支"を表示させるものですが、  
新元号に替わりましたら、元号は『〇〇1年』と表示されるはずです。  
これを『〇〇元年』と表示させるには、どのようにコードを書けばいいでしょうか。  
よろしくお願いします。

[code]

     <SCRIPT type="text/javascript">
     <!--
    var now=new Date();
    var Seireki=now.getFullYear();
    var Wareki=now.toLocaleDateString("ja-JP-u-ca-japanese", { year:"numeric" }).replace("年", "").replace(/\u200e/g, "").replace(" ", "");
    var Eto=new Array("申(猿)", "酉(鳥)", "戌〔犬〕", "亥(猪)", "子(鼠)", "丑(牛)", "寅(虎)", "卯(兎)", "辰(竜)", "巳(蛇)", "午(馬)", "未(羊)");
    var EtoNum=Seireki % 12;
    
      document.write("<p>");
      document.write("&nbsp;&nbsp;<span style='font-size : 25; color : red; font-weight:bold'>");
      document.write(Wareki);
      document.write(" (");
      document.write(Seireki);
      document.write(")");
      document.write("年  ");
      document.write(Eto[EtoNum]);
      document.write("</span>");
      document.write("</p>");
    //-->
    </script>
    
[/code]




アイデアはsakuroさんのものと同じことですが、(一部ブラウザで※)JavaScriptの正規表現では否定的後読み`?<!`が使えないせいでエラーになっているようなので修正したものです。

(※否定的後読みが動くブラウザもあるとのこと。)

[code]

    var now=new Date(1989,10,1);
    var Wareki=now.toLocaleDateString("ja-JP-u-ca-japanese", { era: "long", year:"numeric" })
        .replace("年", "").replace(/\u200e/g, "").replace(" ", "")
        .replace(/(^|[^\d])1(?=$|[^\d])/, '$1元');
    alert(Wareki); //-> 平成元
[/code]

また、SafariのJavaScriptでは、`era: "long"`を指定しないと、「平成」が出力されなかったので追加してあります。

ただ、新元号施行の時点では、多くのブラウザのJavaScriptはまだ新元号に対応していないでしょうから、yyzさんの書かれたような現実的な対応がどこかで必要になるかと思います。




「前が数字でなく、次が末尾である `"1"` 一文字」を置換対象にしてみます。

[code]

    "平成1".replace(/(?<!\d)1(?=$)/, '元') //=> "平成元"
    "平成31".replace(/(?<!\d)1(?=$)/, '元') //=> "平成31"
    "平成10".replace(/(?<!\d)1(?=$)/, '元') /// => "平成10"
    
[/code]

