ルール説明
本ページでは、現在実装されている 4 つの検証モードのみを説明します。ページの結論は validator-rules.js、validator.js、validator-tests.js と一致します。
対象は `general`、`account_name`、`unified_qualification`、`attachment_filename` の 4 モードです。現行のルールセットに含まれないモードは説明対象にしていません。
文字集合
文字が有効かどうかは、現行のルールセットに明示された許可文字集合で決まります。Unicode 範囲の近似や曖昧な推測ルールは使っていません。
一般利用可能文字セット
一般現行ルールで採用している一般非漢字文字と、第一〜第四水準漢字をまとめた文字集合です。`general` モードではこの全体セットを使用します。
Ⅰ
Ⅲ
﨑
全角空白
半角カナ
口座名義情報の文字セット
口座名義口座名義向けに定義された専用文字集合です。明示された半角文字だけを許可し、ASCII 範囲の近似では置き換えません。
半角空白
A-Z
0-9
ア-ン
゙
゚
\
第三水準漢字と第四水準漢字
モード差分第三・第四水準漢字は一般ホワイトリストには含まれますが、`unified_qualification` と `attachment_filename` では丸ごと除外します。
﨑
丂
現行ルール外の文字
ホワイトリスト外現行の許可集合に含まれない文字は、現在のモードでそのまま無効になります。`①`、`㈱`、emoji がこの例です。
①
㈱
😀
検証モード
現在の実装では、現行ルールセットに含まれる 4 モードだけを扱います。
一般
一般利用可能文字セットを使います。一般非漢字文字と、すべての JIS 水準漢字を含みます。`Ⅰ` と `Ⅲ` は有効、`①` と絵文字は無効です。
口座名義
口座名義向けの専用文字セットだけを使います。半角の口座名義例 `ヤマダ タロウ` は有効、`株式会社` は無効です。半角空白は有効で、全角空白は無効です。
統一資格審査
一般利用可能文字セットを土台にしつつ、第三水準漢字と第四水準漢字を除外します。`﨑` が無効になるのは、異体字推測ではなく第三水準漢字集合に属しているためです。
添付ファイル名
`unified_qualification` と同じ第三・第四水準漢字の除外ルールを使います。これらの文字に対する判定結果は両モードで一致します。
判定例
現在実装されている重要な境界ケースをまとめています。内容は自動テストと一致します。
| 例 | 一般 | 口座名義 | 統一資格審査 | 添付ファイル名 | 根拠 |
|---|---|---|---|---|---|
Ⅰ |
有効 | 無効 | 有効 | 有効 | 一般文字セットには `Ⅰ` が含まれますが、口座名義向け文字集合には含まれません。 |
Ⅲ |
有効 | 無効 | 有効 | 有効 | `Ⅲ` も `Ⅰ` と同じく一般ホワイトリストの文字であり、既定で無効表示してはいけません。 |
① |
無効 | 無効 | 無効 | 無効 | `①` は現行の許可文字ホワイトリストに含まれていません。 |
﨑 |
有効 | 無効 | 無効 | 無効 | `﨑` は第三水準漢字に属します。`general` では許可され、`unified_qualification` と `attachment_filename` では除外されます。`account_name` にも含まれません。 |
株式会社 |
有効 | 無効 | 有効 | 有効 | この文字列は `account_name` では無効ですが、一般文字全体として無効と説明してはいけません。 |
ヤマダ タロウ |
有効 | 有効 | 有効 | 有効 | 合法な半角口座名義の例であり、`account_name` モードのテストケースでもあります。 |
(全角空白) |
有効 | 無効 | 有効 | 有効 | 全角空白は一般ホワイトリストに含まれますが、`account_name` の口座名義情報文字集合には含まれません。 |