Open4

全銀テレ為替文字の正確な文字コード

Futa OgawaFuta Ogawa

記号

Unicode名称 半角 全角 NFKC変換後
SPACE (U+0020)   (U+3000) 半角
LEFT PARENTHESIS ( (U+0028) (U+FF08) 半角
RIGHT PARENTHESIS ) (U+0029) (U+FF09) 半角
COMMA , (U+002C) (U+FF0C) 半角
HYPHEN-MINUS - (U+002D) (U+FF0D) 半角
FULL STOP . (U+002E) (U+FF0E) 半角
SOLIDUS / (U+002F) (U+FF0F) 半角
YEN SIGN ¥ (U+00A5) (U+FFE5) 半角
LEFT CORNER BRACKET (U+FF62) (U+300C) 全角
RIGHT CORNER BRACKET (U+FF63) (U+300D) 全角
KATAKANA-HIRAGANA PROLONGED SOUND MARK (U+FF70) (U+30FC) 全角
KATAKANA-HIRAGANA VOICED SOUND MARK (U+FF9E) (U+309B) 全角
KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK (U+FF9F) (U+309C) 全角
Futa OgawaFuta Ogawa

全角カタカナ

  • カタカナ46文字: アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン
  • 濁音カタカナ20文字: ガギグゲゴザジズゼゾダヂヅデドバビブベボ
  • 半濁音カタカナ5文字: パピプペポ
  • 特殊カタカナ1文字:

特殊カタカナとして「ヴ」だけが利用可能な理由として、Shift_JIS (JIS X 0208)に含まれているためと予想される。
「ヷ」、「ヺ」はUnicodeには存在するがNG。

半角カタカナ

  • カタカナ46文字: アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン
  • 濁音・半濁音カタカナ: Unicodeに存在しない(記号の半角 濁音 (U+FF9E)、半濁音 (U+FF9F)を付ける)

結合文字の場合

結合文字の濁点 (U+3099)、半濁点 (U+309A)はNG

https://ja.wikipedia.org/wiki/結合文字

Futa OgawaFuta Ogawa

数字

  • 半角10文字: 0123456789 (U+0030 - U+0039)
  • 全角10文字: 0123456789 (U+FF10 - U+FF19)

アルファベット大文字

  • 半角26文字: ABCDEFGHIJKLMNOPQRSTUVWXYZ (U+0041 - U+005A)
  • 全角26文字: ABCDEFGHIJKLMNOPQRSTUVWXYZ (U+FF21 - U+FF3A)

アルファベット小文字

NG

Futa OgawaFuta Ogawa

結合文字のノーマライズ

結合文字( バ (U+30CF U+3099))を合成文字( (U+30D0))に変換するため String.normalize() を行うことが望ましい。

ただし String.normalize("NFKC") は、合成文字が存在しない濁音記号( A゛ (U+0041 U+309B) など)を (U+309B) から (U+0020 U+3099) に変換してしまうため使用しない方がいい。

正規表現

const allowedChars = [
  "0123456789",
  "0123456789",
  "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
  "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
  "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴ",
  "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン",
  " (),-./¥「」ー゙゚",
  " (),-./¥「」ー゛゜",
];

const allowedCharsRegex = new RegExp(`^[${allowedChars.join("")}]*$`);

allowedCharsRegex.test("テスト".normalize()); // true
allowedCharsRegex.test("テスト!".normalize()); // false