// 文字コード: UTF-8(固定)
function ms932_ext_kanji_regex()
{
  switch ("あ".charCodeAt(0))
    {
    case 0x3042:
      // 内部文字コードがUnicodeのブラウザ
      return /[\u2116\u2121\u2160-\u2169\u2170-\u2179\u2235\u3231\u4E28\u4EE1\u4EFC\u4F00\u4F03\u4F39\u4F56\u4F8A\u4F92\u4F94\u4F9A\u4FC9\u4FCD\u4FFF\u501E\u5022\u5040\u5042\u5046\u5070\u5094\u50D8\u50F4\u514A\u5164\u519D\u51BE\u51EC\u5215\u529C\u52A6\u52AF\u52C0\u52DB\u5300\u5307\u5324\u5372\u5393\u53B2\u53DD\u548A\u549C\u54A9\u54FF\u5586\u5759\u5765\u57AC\u57C7-\u57C8\u589E\u58B2\u590B\u5953\u595B\u595D\u5963\u59A4\u59BA\u5B56\u5BC0\u5BD8\u5BEC\u5C1E\u5CA6\u5CBA\u5CF5\u5D27\u5D42\u5D53\u5D6D\u5DB8-\u5DB9\u5DD0\u5F21\u5F34\u5F45\u5F67\u5FB7\u5FDE\u605D\u6085\u608A\u60D5\u60DE\u60F2\u6111\u6120\u6130\u6137\u6198\u6213\u62A6\u63F5\u6460\u649D\u64CE\u654E\u6600\u6609\u6615\u661E\u6624\u662E\u6631\u663B\u6657\u6659\u6665\u6673\u6699\u66A0\u66B2\u66BF\u66FA\u66FB\u670E\u6766\u67BB\u67C0\u6801\u6844\u6852\u68C8\u68CF\u6968\u6998\u69E2\u6A30\u6A46\u6A6B\u6A73\u6A7E\u6AE2\u6AE4\u6BD6\u6C3F\u6C5C\u6C6F\u6C86\u6CDA\u6D04\u6D6F\u6D87\u6D96\u6DAC\u6DCF\u6DF2\u6DF8\u6DFC\u6E27\u6E39\u6E3C\u6E5C\u6EBF\u6F88\u6FB5\u6FF5\u7005\u7007\u7028\u7085\u70AB\u70BB\u7104\u710F\u7146-\u7147\u715C\u71C1\u71FE\u72B1\u72BE\u7324\u7377\u73BD\u73C9\u73D2\u73D6\u73E3\u73F5\u7407\u7426\u7429\u742A\u742E\u7462\u7489\u749F\u7501\u752F\u756F\u7682\u769B\u769C\u769E\u76A6\u7746\u7821\u784E\u7864\u787A\u7930\u7994\u799B\u7AD1\u7AE7\u7AEB\u7B9E\u7D48\u7D5C\u7DA0\u7DB7\u7DD6\u7E52\u7E8A\u7F47\u7FA1\u8301\u8362\u837F\u83C7\u83F6\u8448\u84B4\u84DC\u8553\u8559\u856B\u85B0\u8807\u88F5\u891C\u8A12\u8A37\u8A79\u8AA7\u8ABE\u8ADF\u8AF6\u8B53\u8B7F\u8CF0\u8CF4\u8D12\u8D76\u8ECF\u9067\u90DE\u9115\u9127\u91D7\u91DA\u91DE\u91E4\u91E5\u91ED\u91EE\u9206\u920A\u9210\u9239\u923A\u923C\u9240\u924E\u9251\u9259\u9267\u9277\u9278\u9288\u92A7\u92D0\u92D3\u92D5\u92D7\u92D9\u92E0\u92E7\u92F9\u92FB\u92FF\u9302\u931D\u931E\u9321\u9325\u9348\u9357\u9370\u93A4\u93C6\u93DE\u93F8\u9431\u9445\u9448\u9592\u969D\u96AF\u9733\u973B\u9743\u974D\u974F\u9751\u9755\u9857\u9865\u9927\u999E\u9A4E\u9AD9\u9ADC\u9B72\u9B75\u9B8F\u9BB1\u9BBB\u9C00\u9D6B\u9D70\u9E19\u9ED1\uF929\uF9DC\uFA0E-\uFA2D\uFF02\uFF07\uFFE2\uFFE4]/g;



    case 0x82:
    case 0x82A0:
    default:
      // 内部文字コードがShift_jisのブラウザ
      var exts = new Array();

      // IBM拡張漢字
      exts.concat(makeChars(0xED40, 0xED7E));
      exts.concat(makeChars(0xED80, 0xEDFC));
      exts.concat(makeChars(0xEE40, 0xEE7E));
      exts.concat(makeChars(0xEE80, 0xEEEC));
      exts.concat(makeChars(0xEEEF, 0xEEFC));

      // 第3水準漢字
      exts.concat(makeChars(0xFA40, 0xFA7E));
      exts.concat(makeChars(0xFA80, 0xFAFC));
      exts.concat(makeChars(0xFB40, 0xFB7E));
      exts.concat(makeChars(0xFB80, 0xFBFC));
      exts.concat(makeChars(0xFC40, 0xFC4B));

      return new RegExp('[' + exts.join('') + ']', "g");
    } // end of switch ("あ")
}

// 文字コードbeginからendの文字を配列で返す(endを含む)
function makeChars(begin, end)
{
  var chars = new Array();
  if (begin <= end) chars.push(String.fromCharCode(begin));
  return (begin == end)
   ? chars
   : chars.concat(makeChars(begin+1, end));
}

