Skip to content

normalizeJpText ​

INFO

houki-abbreviations v0.7.1 の dist/index.d.ts と specs/current/normalize_jp_text/spec.md から自動生成しました(仕様 ID 13 件・2026-10-10)。手で編集しないでください。再生成は node scripts/generate-reference.mjs です。

関数 ・ v0.3.0 で追加 ・ houki-egov-mcp / houki-nta-mcp が使用

日本語テキストの全角ゆらぎを保守的に半角化する。

数値表記・ASCII 文字・特定記号(ダッシュ類、チルダ、スペース)の全角/半角 表記揺れを吸収するための関数。大文字小文字は保持するため、 「PL法」→「PL法」のように元の casing は変わらない。 ダッシュ類は - ‐ ‑ – — ― − の 7 文字を - にする(v0.7.0 から。 v0.6.1 までは全角ハイフン - だけだった)。罫線 ─ と長音 ー は変えない。

漢字・ひらがな・カタカナ・中黒(・)・各種句読点は変更しない。どの変換も 1 文字を 1 文字に置き換えるので、文字数が変わるのは前後の空白を取り除くときだけ。

入力が空文字や null/undefined 相当(!input)の場合は空文字を返す。

利用者と得られる結果 ​

この関数の利用者と、利用者が渡すもの・得られる結果を示します。

  • このパッケージを import するコード(houki-hub family の MCP サーバーなど)。法令・通達の本文や利用者の入力を渡して、全角と半角の書き分けを揃えた文字列を受け取る。DB に入れる文字列と検索に使う文字列の両方に同じ関数を通して照合する
  • このパッケージの中では、resolveAbbreviation(name, { normalize: true }) と searchByName / findSimilar の normalize がこの関数を使う

シグネチャ ​

import して呼ぶときの形です。パッケージの型定義(dist/index.d.ts)から写しています。

ts
function normalizeJpText(input: string): string;
引数説明
input正規化対象の文字列

戻り値: 半角化された文字列(前後の空白は trim 済み)

例 ​

型定義の JSDoc に書かれている例です。

例
ts
normalizeJpText('183-2');     // '183-2'
normalizeJpText('183―2');     // '183-2'(U+2015 などのダッシュ類も。v0.7.0 から)
normalizeJpText('183~193共-1');  // '183~193共-1'(チルダのみ半角化)
normalizeJpText('PL法');         // 'PL法'(大文字保持)
normalizeJpText('  消法  ');      // '消法'(trim)
normalizeJpText('消 法');         // '消 法'(全角スペース → 半角)

扱わないこと ​

この関数が意図して扱わないことです。

  • 英大文字を小文字にすること、続いた空白を 1 つにまとめること(normalizeSearchQuery)
  • 漢数字を算用数字にすること(法令番号なら normalizeLawNum、漢数字だけの文字列なら kanjiToNumber)
  • 半角カナを全角カナにすること
  • 表に無い全角記号(/ ( ) など)を半角にすること(未決 2)

処理の流れ ​

仕様書の「処理の流れ」の節を、図も含めてそのまま写しています。図が大きいので畳んでいます。

処理の流れの図(仕様書の写し)

図の中の番号は「できること」の仕様 ID の末尾 3 桁です。

仕様項目の一覧 ​

この関数の仕様項目 13 件の見出しです。仕様項目は受入テストと 1 対 1 で対応していて、条件と例は仕様書ページで読めます。

仕様項目の見出し(13 件)
仕様 ID仕様項目
001全角数字を半角数字にする
002全角英字を半角英字にし、大文字小文字は変えない
003全角ハイフンを半角ハイフンにする
004全角チルダと波ダッシュを半角チルダにする
005全角スペースを半角スペースにする
006前後の空白を取り除く
007空文字には空文字を返す
008表に無い文字は変えない
009null と undefined には空文字を返す
010表に無い全角記号は変えない
011前後のタブ・改行・ノーブレークスペースも取り除く
012全角ハイフン以外のダッシュ類も半角ハイフンにする
013罫線と長音は半角ハイフンにしない

関連ページ ​

このページの元になった文書と、あわせて読むページです。

本サイトの内容は調査の出発点であり、法的助言ではありません。個別の事案は資格を持つ専門家に相談してください。免責事項と利用範囲