「文字カウント」の版間の差分
ナビゲーションに移動
検索に移動
細 (注意点を追記(改行は1文字とカウント)) |
(マクロ更新) |
||
2行目: | 2行目: | ||
選択範囲or文書全体の字数・容量を算出するマクロです。<br> | 選択範囲or文書全体の字数・容量を算出するマクロです。<br> | ||
Shift_JIS/UTF- | Shift_JIS/UTF-16/UTF-8 でのバイト数を一度に確認できます。 | ||
[[ファイル:CharacterCounter.png|border]] | [[ファイル:CharacterCounter.png|border]] | ||
==注意点== | ==注意点== | ||
* | * 改行・半角文字・全角文字、すべて1文字とカウントします。 | ||
* Shift_JIS は Microsoft コードページ 932 (CP932) | * Shift_JIS は Windows-31J / Microsoft コードページ 932 (CP932) に準拠しています。 | ||
* Unicode 対応は一部に留まります。 | * Unicode 対応は一部に留まります。 | ||
** サロゲートペアは、Mery では仕様上2文字とカウントされますが、このマクロでは1文字とカウントします。 | ** サロゲートペアは、Mery では仕様上2文字とカウントされますが、このマクロでは1文字とカウントします。 | ||
** | ** 結合文字や異体字セレクタ、Unicode の空白文字や制御文字は考慮していません。これらは通常の文字と同様にカウントされます。 | ||
* | * 文字数や文字種が増えるほど処理に時間がかかります(作者の環境では、100万字の処理に約1.5秒かかりました)。<br>ステータスバーに処理に要した時間が表示されますので参考にしてください。 | ||
==ソースコード== | ==ソースコード== | ||
ダウンロード→ [[メディア:文字カウント.zip|文字カウント.zip]] | ダウンロード→ <b>[[メディア:文字カウント.zip|文字カウント.zip]]</b> | ||
* 拙作ですがアイコンファイルを同梱してあります。<br>Mery の My Macros フォルダにアイコンファイル (文字カウント.ico) を配置すれば、ツールバーにアイコンが読み込まれます。 | * 拙作ですがアイコンファイルを同梱してあります。<br>Mery の My Macros フォルダにアイコンファイル (文字カウント.ico) を配置すれば、ツールバーにアイコンが読み込まれます。 | ||
21行目: | 21行目: | ||
==更新履歴== | ==更新履歴== | ||
[[ファイル:文字カウント.zip]] | [[ファイル:文字カウント.zip]] | ||
* | * 2015/09/30 | ||
** アウトラインやアウトプットにフォーカスがある場合、結果が 0 | ** 改行コードを判別し、容量に反映するようにした。ただし、判別にクリップボードを使う仕様上、下記の難点があります。 | ||
** 分類「段落」の正規表現を変更。 /^(?= [^ \s] | *** 対象範囲に改行が存在しない場合は判別できない。 | ||
** 分類「会話」の正規表現を変更。 /^(?=「. | *** クリップボードの内容を記憶・復元する過程でクリップボード履歴が1つ増えてしまう。 | ||
* | ** 結果表示の内容を改訂。 | ||
*** 「段落」はデフォルトで非表示とした。(後述の定義変更を受けて) | |||
*** 「拡張」を「依存」に改称し、MS拡張 → MS拡張+MS外字 の字数に変更。 | |||
*** 「サロゲート」を「ペア」に改称。 | |||
*** SJIS の容量表記を「数値 bytes」→「数値 バイト」に変更。 | |||
*** UTF-16 の容量表記を「数値 bytes (BOM無)」→「数値+2(BOM) バイト」に変更。 | |||
*** UTF-8 の容量表記を「数値 bytes (BOM無)」→「数値+3(BOM) バイト」に変更。 | |||
** 分類「会話」を削除。(なんとなく用意してみた、程度の存在理由だったので) | |||
** 分類「段落」の正規表現を変更。 /^(?= [^ \s])/gm → /^(?![ \t]*$)/gm | |||
**: Microsoft Word の文字カウント仕様(段落数)に近づけた。 | |||
** 分類「英単」を「半英単」に改称し、正規表現を変更。 /\b(?=\w)/g → /(?=[!-~](?![!-~]))/g | |||
**: Microsoft Word の文字カウント仕様(半角英数の単語数)に少しだけ近づけた。※仕様が不詳かつ複雑なため、完全再現は目指していません。 | |||
** 「MS外字」の分類(type)を "総数,MS外字" → "総数,MS外字,全角" に変更。 | |||
** 文字 U+0080 の分類(type)を "総数,Uni" → "総数,MS外字" に修正。 | |||
** 文字種一覧に「SJIS保存時、よく似た半角文字に変換される文字」を追加。 | |||
* 2014/02/17 | |||
** アウトラインやアウトプットにフォーカスがある場合、結果が 0 になってしまうのを修正。 | |||
**: Document ではなく Editor.ActiveDocument を利用してテキストを取得するようにした。 | |||
** 分類「段落」の正規表現を変更。 /^(?= [^ \s]+)/gm → /^(?= [^ \s])/gm | |||
** 分類「会話」の正規表現を変更。 /^(?=「.+」$)/gm → /^(?=「.*」$)/gm | |||
* 2014/02/01 | |||
** 初版公開。 | ** 初版公開。 | ||
== | ==文字種一覧== | ||
デフォルトで定義されている文字種は下表のとおりです。分類は Shift_JIS (CP932) を基準にしています。 | デフォルトで定義されている文字種は下表のとおりです。分類は Shift_JIS (CP932) を基準にしています。 | ||
<b style="background:#fcc;"> 赤地 </b> | <b style="background:#fcc;"> 赤地 </b> の項目は、デフォルトで結果表示に採用されている項目です。ただし下記の項目は、計算により求められています。 | ||
* 「字数」=<b style="background:#fcc;"> 総数 </b>-<b style="background:#fcc;"> 改行 </b>-<b style="background:#ccf;"> 空白 </b> ※総字数から改行・空白を引いた数 | |||
* 「依存」=<b style="background:#fcc;"> MS拡張 </b>+<b style="background:#fcc;"> MS外字 </b> | |||
{| class="wikitable" style="text-align:center;" | {|class="wikitable" style="text-align:center;" | ||
! colspan="4" | 分類 | !colspan="4"| 分類 (type) | ||
! 該当文字 /正規表現/ | ! 該当文字 (re)<br>/正規表現/ !! 容量<br>(sjis,utf16,utf8) !! 備考 | ||
|- | |- | ||
! rowspan=" | !rowspan="3" style="background:#ccc;"| | ||
! colspan="3" | 階層 | !colspan="3"| 階層 | ||
| /^(?=\.)/gm || | | /^(?=\.)/gm || || ピリオドで始まる行 (階層付きテキスト) | ||
|- | |- | ||
! colspan="3 | !colspan="3"| 段落 | ||
| /^(? | | /^(?![ \t]*$)/gm || || 空白行でない論理行 | ||
|- | |- | ||
! colspan="3" | | !colspan="3"| 半英単 | ||
| / | | /(?=[!-~](?![!-~]))/g || || ASCII文字による単語 (半角英数の単語) | ||
|- | |- | ||
! | !rowspan="33" style="background:#fcc;"| 総数 | ||
|- | |- | ||
! rowspan=" | !rowspan="3"| 制御 | ||
!style="background:#fcc;" colspan="2"| 改行 | |||
| ※CR+LF<br>※CR または LF || 2, 4, 2<br>1, 2, 1 || ASCII制御文字 | |||
|- | |- | ||
! | !style="background:#ccf;"| 空白 !! タブ | ||
| /\t/g || 1, 2, 1 || ASCII制御文字 | |||
| | |||
| | |||
| | |||
|- | |- | ||
! style="background:# | !style="background:#ccc;" colspan="2"| | ||
| /\ | | /[\u0000-\u001F\u007F]/g || 1, 2, 1 || 上記以外のASCII制御文字 | ||
|- | |- | ||
!rowspan="6" style="background:#fcc;"| 半角 | |||
!style="background:#ccf;"| 空白 !! 半空 | |||
| / /g || 1, 2, 1 || ASCII文字 | |||
! rowspan="6" style="background:#fcc;" | 半角 | |||
! style="background:#ccf;" | 空白 !! 半空 | |||
| / /g || 1 | |||
|- | |- | ||
! 数字 !! 半数 | ! 数字 !! 半数 | ||
| /[0-9]/g || 1 | | /[0-9]/g || 1, 2, 1 || ASCII文字 | ||
|- | |- | ||
! 英字 !! 半英 | ! 英字 !! 半英 | ||
| /[A-Za-z]/g || 1 | | /[A-Za-z]/g || 1, 2, 1 || ASCII文字 | ||
|- | |- | ||
! rowspan="2" | 記号 | !rowspan="2"| 記号 | ||
! style="background:#ccc;" | | !style="background:#ccc;"| | ||
| /[ | | /[\u0020-\u007E]/g || 1, 2, 1 || 上記以外のASCII文字 | ||
|- | |- | ||
! | !style="background:#fcc;" rowspan="2"| 半カナ | ||
| /[。「」、・ー゙゚]/g || 1 | | /[。「」、・ー゙゚]/g || 1, 2, 3 || | ||
|- | |- | ||
! 仮名 | ! 仮名 | ||
| /[ヲ-ッア-ン]/g || 1 | | /[ヲ-ッア-ン]/g || 1, 2, 3 || | ||
|- | |- | ||
! rowspan=" | !rowspan="16" style="background:#fcc;"| 全角 | ||
! style="background:#ccf;" | 空白 !! 全空 | !style="background:#ccf;"| 空白 !! 全空 | ||
| / /g || 2 | | / /g || 2, 2, 3 || | ||
|- | |- | ||
! 数字 !! 全数 | ! 数字 !! 全数 | ||
| /[0-9]/g || 2 | | /[0-9]/g || 2, 2, 3 || | ||
|- | |- | ||
! 英字 !! 全英 | ! 英字 !! 全英 | ||
| /[A-Za-z]/g || 2 | | /[A-Za-z]/g || 2, 2, 3 || | ||
|- | |- | ||
! rowspan="2" | 仮名 | !rowspan="2"| 仮名 | ||
! かな | ! かな | ||
| /[ぁ-ん]/g || 2 | | /[ぁ-ん]/g || 2, 2, 3 || ※SJISでは ゔ ゕ ゖ などは扱えない | ||
|- | |- | ||
! カナ | ! カナ | ||
| /[ァ-ヶ]/g || 2 | | /[ァ-ヶ]/g || 2, 2, 3 || | ||
|- | |- | ||
! colspan="2" | ギリシャ | !colspan="2"| ギリシャ | ||
| /[Α-ΡΣ-Ωα-ρσ-ω]/g || 2 | | /[Α-ΡΣ-Ωα-ρσ-ω]/g || 2, 2, 2 || ※SJISではシグマの語末形 ς は扱えない | ||
|- | |- | ||
! colspan="2" | キリル | !colspan="2"| キリル | ||
| /[ЁА-Яа-яё]/g || 2 | | /[ЁА-Яа-яё]/g || 2, 2, 2 || ※Unicodeでは Ё ё の配置がJISと異なる | ||
|- | |- | ||
! rowspan="2" colspan="2" | 記号 | !rowspan="2" colspan="2"| 記号 | ||
| /[´¨±×÷°§¶]/g || 2 | | /[´¨±×÷°§¶]/g || 2, 2, 2 || UTF-8で2バイトの全角記号(8字) | ||
|- | |- | ||
| /[、。, (中略) †‡◯]/g || 2 | | /[、。, (中略) †‡◯]/g || 2, 2, 3 || UTF-8で3バイトの全角記号(138字) | ||
|- | |- | ||
! colspan="2" | 罫線 | !colspan="2"| 罫線 | ||
| /[─│┌ (中略) ┥┸╂]/g || 2 | | /[─│┌ (中略) ┥┸╂]/g || 2, 2, 3 || 罫線素片(32字) | ||
|- | |- | ||
! rowspan="3" | 漢字 | !rowspan="3"| 漢字 | ||
!第一 | ! 第一 | ||
| /[亜唖娃 (中略) 湾碗腕]/g || 2 | | /[亜唖娃 (中略) 湾碗腕]/g || 2, 2, 3 || JIS第一水準漢字(2965字) | ||
|- | |- | ||
!第二 | ! 第二 | ||
| /[弌丐丕 (中略) 瑤凜熙]/g || 2 | | /[弌丐丕 (中略) 瑤凜熙]/g || 2, 2, 3 || JIS第二水準漢字(3390字) | ||
|- | |- | ||
! | !style="background:#fcc;" rowspan="2"| MS拡張 | ||
| /[纊褜鍈 (中略) 鶴鸙黑]/g || 2 | | /[纊褜鍈 (中略) 鶴鸙黑]/g || 2, 2, 3 || IBM拡張文字(漢字360字) | ||
|- | |- | ||
! style="background:#ccc;" | | !style="background:#ccc;"| | ||
| /[①-⑳Ⅰ (中略) ¦'"]/g || 2 | | /[①-⑳Ⅰ (中略) ¦'"]/g || 2, 2, 3 || NEC特殊文字/IBM拡張文字(記号等87字) | ||
|- | |- | ||
! | !style="background:#ccc;" rowspan="3"| | ||
! | !style="background:#fcc;" rowspan="3"| MS外字 | ||
| /[\uE000-\uE757]/g || 2 | | /[\uE000-\uE757]/g || 2, 2, 3 || Microsoft ユーザー定義外字(1880字) | ||
|- | |- | ||
| /[\uF8F0-\uF8F3]/g || 1 | | /[\uF8F0-\uF8F3]/g || 1, 2, 3 | ||
|rowspan="2"| CP932 未定義文字<br>※SJIS保存時、0xA0/FD/FE/FF/80 に変換される | |||
|- | |- | ||
! | !style="background:#ccc;"| | ||
| /\u0080/g || 1, 2, 2 | |||
| / | |||
|- | |- | ||
| / | !rowspan="6" style="background:#fcc;"| Uni | ||
!style="background:#ccc;" rowspan="3" colspan="2"| | |||
| /[¡¥¦©ª®²³¹º¿À-ÖØ-öø-ÿ]/g || 1, 2, 2 || ※SJIS保存時、よく似た半角文字に変換される | |||
|- | |- | ||
| /[¢£«¬¯µ·¸»]/g || 2, 2, 2 || ※SJIS保存時、よく似た全角文字に変換される | |||
| /[ | |||
|- | |- | ||
| /ゔ/g || 2, 2, 3 || ※SJIS保存時、全角カナの ヴ に変換される | |||
| / | |||
|- | |- | ||
! colspan="2" style="background:#ccc;" | | !style="background:#ccc;" colspan="2"| | ||
| /[\u0800-\uFFFF]/g || 1 | | /[\u0080-\u07FF]/g || 1, 2, 2 || 上記以外のUTF-8で2バイトの文字 | ||
|- | |||
!style="background:#fcc;" colspan="2"| SP | |||
| /[\uD800-\uDBFF][\uDC00-\uDFFF]/g || 2, 4, 4 || サロゲートペア (U+10000~10FFFF) | |||
|- | |||
!style="background:#ccc;" colspan="2"| | |||
| /[\u0800-\uFFFF]/g || 1, 2, 3 || 上記以外のUTF-8で3バイトの文字 | |||
|} | |} | ||
* Shift_JIS では、<b style="background:#fcc;"> MS拡張 </b> <b style="background:#fcc;"> MS外字 </b> に分類される文字は「機種依存文字」に該当し、Windows 以外では文字化けする可能性があります。 | |||
* Shift_JIS では、<b style="background:#fcc;"> Uni </b> に分類される文字を正常に保存できません。保存を強行した場合、よく似た文字や ? の文字に変換されます。 | |||
==文字種について== | |||
文字種の分類は、ソースコードの最初のほうにある「文字種の定義」の部分で定義されています。 | |||
== | |||
<source lang="javascript"> | <source lang="javascript"> | ||
var list = [ | var list = [ | ||
{sjis:数値,utf16:数値,utf8:数値, type: | {sjis:数値,utf16:数値,utf8:数値, type:文字列, re:正規表現}, | ||
(中略) | |||
]; | ]; | ||
</source> | </source> | ||
{| class="wikitable" | {|class="wikitable" | ||
! re | |||
! re | |||
| カウントしたい文字を正規表現で記述します。<br>たとえば全角カタカナなら、<code style="color:#c00;">re:/[ァ-ヶ]/g</code> という具合です。<br>利用できる正規表現は、実行環境 JScript (JavaScript) の仕様に依存します。 | | カウントしたい文字を正規表現で記述します。<br>たとえば全角カタカナなら、<code style="color:#c00;">re:/[ァ-ヶ]/g</code> という具合です。<br>利用できる正規表現は、実行環境 JScript (JavaScript) の仕様に依存します。 | ||
|- | |- | ||
! type | ! type | ||
| 文字種の分類名です。複数設定したい場合はカンマで区切ります。<br>たとえば、<code style="color:#c00;">type:"総数,全角,カナ"</code> という具合です。<br>この場合、type["総数"], type["全角"], type["カナ"] の変数にカウントが加算されます。 | | 文字種の分類名です。複数設定したい場合はカンマで区切ります。<br>たとえば、<code style="color:#c00;">type:"総数,全角,カナ"</code> という具合です。<br>この場合、type["総数"], type["全角"], type["カナ"] の変数にカウントが加算されます。 | ||
|- | |- | ||
! sjis<br>utf16<br>utf8 | ! sjis<br>utf16<br>utf8 | ||
| | | 1文字 (1カウント) あたりの容量 (バイト) を設定します。<br>たとえば、<code style="color:#c00;">sjis:2,utf16:2,utf8:3</code> という具合です。<br>それぞれ SJIS, UTF-16, UTF-8 での容量となります。省略した場合は 0 とみなします。 | ||
|} | |} | ||
== | ==結果表示について== | ||
表示される結果は、ソースコードの最後のほうにある「ここから~ここまで結果表示の定義」の部分で定義されています。<br> | |||
ソースコードを単純化すると、以下のような処理になっています。 | ソースコードを単純化すると、以下のような処理になっています。 | ||
<source lang="javascript"> | <source lang="javascript"> |
2015年9月30日 (水) 23:23時点における版
選択範囲or文書全体の字数・容量を算出するマクロです。
Shift_JIS/UTF-16/UTF-8 でのバイト数を一度に確認できます。
注意点
- 改行・半角文字・全角文字、すべて1文字とカウントします。
- Shift_JIS は Windows-31J / Microsoft コードページ 932 (CP932) に準拠しています。
- Unicode 対応は一部に留まります。
- サロゲートペアは、Mery では仕様上2文字とカウントされますが、このマクロでは1文字とカウントします。
- 結合文字や異体字セレクタ、Unicode の空白文字や制御文字は考慮していません。これらは通常の文字と同様にカウントされます。
- 文字数や文字種が増えるほど処理に時間がかかります(作者の環境では、100万字の処理に約1.5秒かかりました)。
ステータスバーに処理に要した時間が表示されますので参考にしてください。
ソースコード
ダウンロード→ 文字カウント.zip
- 拙作ですがアイコンファイルを同梱してあります。
Mery の My Macros フォルダにアイコンファイル (文字カウント.ico) を配置すれば、ツールバーにアイコンが読み込まれます。
更新履歴
- 2015/09/30
- 改行コードを判別し、容量に反映するようにした。ただし、判別にクリップボードを使う仕様上、下記の難点があります。
- 対象範囲に改行が存在しない場合は判別できない。
- クリップボードの内容を記憶・復元する過程でクリップボード履歴が1つ増えてしまう。
- 結果表示の内容を改訂。
- 「段落」はデフォルトで非表示とした。(後述の定義変更を受けて)
- 「拡張」を「依存」に改称し、MS拡張 → MS拡張+MS外字 の字数に変更。
- 「サロゲート」を「ペア」に改称。
- SJIS の容量表記を「数値 bytes」→「数値 バイト」に変更。
- UTF-16 の容量表記を「数値 bytes (BOM無)」→「数値+2(BOM) バイト」に変更。
- UTF-8 の容量表記を「数値 bytes (BOM無)」→「数値+3(BOM) バイト」に変更。
- 分類「会話」を削除。(なんとなく用意してみた、程度の存在理由だったので)
- 分類「段落」の正規表現を変更。 /^(?= [^ \s])/gm → /^(?![ \t]*$)/gm
- Microsoft Word の文字カウント仕様(段落数)に近づけた。
- 分類「英単」を「半英単」に改称し、正規表現を変更。 /\b(?=\w)/g → /(?=[!-~](?![!-~]))/g
- Microsoft Word の文字カウント仕様(半角英数の単語数)に少しだけ近づけた。※仕様が不詳かつ複雑なため、完全再現は目指していません。
- 「MS外字」の分類(type)を "総数,MS外字" → "総数,MS外字,全角" に変更。
- 文字 U+0080 の分類(type)を "総数,Uni" → "総数,MS外字" に修正。
- 文字種一覧に「SJIS保存時、よく似た半角文字に変換される文字」を追加。
- 改行コードを判別し、容量に反映するようにした。ただし、判別にクリップボードを使う仕様上、下記の難点があります。
- 2014/02/17
- アウトラインやアウトプットにフォーカスがある場合、結果が 0 になってしまうのを修正。
- Document ではなく Editor.ActiveDocument を利用してテキストを取得するようにした。
- 分類「段落」の正規表現を変更。 /^(?= [^ \s]+)/gm → /^(?= [^ \s])/gm
- 分類「会話」の正規表現を変更。 /^(?=「.+」$)/gm → /^(?=「.*」$)/gm
- アウトラインやアウトプットにフォーカスがある場合、結果が 0 になってしまうのを修正。
- 2014/02/01
- 初版公開。
文字種一覧
デフォルトで定義されている文字種は下表のとおりです。分類は Shift_JIS (CP932) を基準にしています。
赤地 の項目は、デフォルトで結果表示に採用されている項目です。ただし下記の項目は、計算により求められています。
- 「字数」= 総数 - 改行 - 空白 ※総字数から改行・空白を引いた数
- 「依存」= MS拡張 + MS外字
分類 (type) | 該当文字 (re) /正規表現/ |
容量 (sjis,utf16,utf8) |
備考 | |||
---|---|---|---|---|---|---|
階層 | /^(?=\.)/gm | ピリオドで始まる行 (階層付きテキスト) | ||||
段落 | /^(?![ \t]*$)/gm | 空白行でない論理行 | ||||
半英単 | /(?=[!-~](?![!-~]))/g | ASCII文字による単語 (半角英数の単語) | ||||
総数 | ||||||
制御 | 改行 | ※CR+LF ※CR または LF |
2, 4, 2 1, 2, 1 |
ASCII制御文字 | ||
空白 | タブ | /\t/g | 1, 2, 1 | ASCII制御文字 | ||
/[\u0000-\u001F\u007F]/g | 1, 2, 1 | 上記以外のASCII制御文字 | ||||
半角 | 空白 | 半空 | / /g | 1, 2, 1 | ASCII文字 | |
数字 | 半数 | /[0-9]/g | 1, 2, 1 | ASCII文字 | ||
英字 | 半英 | /[A-Za-z]/g | 1, 2, 1 | ASCII文字 | ||
記号 | /[\u0020-\u007E]/g | 1, 2, 1 | 上記以外のASCII文字 | |||
半カナ | /[。「」、・ー゙゚]/g | 1, 2, 3 | ||||
仮名 | /[ヲ-ッア-ン]/g | 1, 2, 3 | ||||
全角 | 空白 | 全空 | / /g | 2, 2, 3 | ||
数字 | 全数 | /[0-9]/g | 2, 2, 3 | |||
英字 | 全英 | /[A-Za-z]/g | 2, 2, 3 | |||
仮名 | かな | /[ぁ-ん]/g | 2, 2, 3 | ※SJISでは ゔ ゕ ゖ などは扱えない | ||
カナ | /[ァ-ヶ]/g | 2, 2, 3 | ||||
ギリシャ | /[Α-ΡΣ-Ωα-ρσ-ω]/g | 2, 2, 2 | ※SJISではシグマの語末形 ς は扱えない | |||
キリル | /[ЁА-Яа-яё]/g | 2, 2, 2 | ※Unicodeでは Ё ё の配置がJISと異なる | |||
記号 | /[´¨±×÷°§¶]/g | 2, 2, 2 | UTF-8で2バイトの全角記号(8字) | |||
/[、。, (中略) †‡◯]/g | 2, 2, 3 | UTF-8で3バイトの全角記号(138字) | ||||
罫線 | /[─│┌ (中略) ┥┸╂]/g | 2, 2, 3 | 罫線素片(32字) | |||
漢字 | 第一 | /[亜唖娃 (中略) 湾碗腕]/g | 2, 2, 3 | JIS第一水準漢字(2965字) | ||
第二 | /[弌丐丕 (中略) 瑤凜熙]/g | 2, 2, 3 | JIS第二水準漢字(3390字) | |||
MS拡張 | /[纊褜鍈 (中略) 鶴鸙黑]/g | 2, 2, 3 | IBM拡張文字(漢字360字) | |||
/[①-⑳Ⅰ (中略) ¦'"]/g | 2, 2, 3 | NEC特殊文字/IBM拡張文字(記号等87字) | ||||
MS外字 | /[\uE000-\uE757]/g | 2, 2, 3 | Microsoft ユーザー定義外字(1880字) | |||
/[\uF8F0-\uF8F3]/g | 1, 2, 3 | CP932 未定義文字 ※SJIS保存時、0xA0/FD/FE/FF/80 に変換される | ||||
/\u0080/g | 1, 2, 2 | |||||
Uni | /[¡¥¦©ª®²³¹º¿À-ÖØ-öø-ÿ]/g | 1, 2, 2 | ※SJIS保存時、よく似た半角文字に変換される | |||
/[¢£«¬¯µ·¸»]/g | 2, 2, 2 | ※SJIS保存時、よく似た全角文字に変換される | ||||
/ゔ/g | 2, 2, 3 | ※SJIS保存時、全角カナの ヴ に変換される | ||||
/[\u0080-\u07FF]/g | 1, 2, 2 | 上記以外のUTF-8で2バイトの文字 | ||||
SP | /[\uD800-\uDBFF][\uDC00-\uDFFF]/g | 2, 4, 4 | サロゲートペア (U+10000~10FFFF) | |||
/[\u0800-\uFFFF]/g | 1, 2, 3 | 上記以外のUTF-8で3バイトの文字 |
- Shift_JIS では、 MS拡張 MS外字 に分類される文字は「機種依存文字」に該当し、Windows 以外では文字化けする可能性があります。
- Shift_JIS では、 Uni に分類される文字を正常に保存できません。保存を強行した場合、よく似た文字や ? の文字に変換されます。
文字種について
文字種の分類は、ソースコードの最初のほうにある「文字種の定義」の部分で定義されています。
var list = [
{sjis:数値,utf16:数値,utf8:数値, type:文字列, re:正規表現},
(中略)
];
re | カウントしたい文字を正規表現で記述します。 たとえば全角カタカナなら、 re:/[ァ-ヶ]/g という具合です。利用できる正規表現は、実行環境 JScript (JavaScript) の仕様に依存します。 |
---|---|
type | 文字種の分類名です。複数設定したい場合はカンマで区切ります。 たとえば、 type:"総数,全角,カナ" という具合です。この場合、type["総数"], type["全角"], type["カナ"] の変数にカウントが加算されます。 |
sjis utf16 utf8 |
1文字 (1カウント) あたりの容量 (バイト) を設定します。 たとえば、 sjis:2,utf16:2,utf8:3 という具合です。それぞれ SJIS, UTF-16, UTF-8 での容量となります。省略した場合は 0 とみなします。 |
結果表示について
表示される結果は、ソースコードの最後のほうにある「ここから~ここまで結果表示の定義」の部分で定義されています。
ソースコードを単純化すると、以下のような処理になっています。
var result = (※出力用のテキストを生成);
Alert(result);
スポンサーリンク