Softex CelwareTech Blog
バニラJS Webアプリ2026-09-25

日本語文面から宛名を安全に取り出す

敬称だけを手掛かりに日本語文面から宛名を抽出し、一般的な呼びかけや本文の誤認を拒否して、アカウント名へ安全にフォールバックする方法を解説します。

JavaScript日本語処理文字列解析テスト

定型文から宛名を自動取得するとき、最初の行や敬称の直前だけを切り出す方法では、「お客様各位」や本文中の「様子」まで宛名として扱うことがあります。抽出条件と拒否条件を対にして設計します。

敬称の前だけを候補にする

文面を正規化した後、「様」「さん」「御中」など既知の敬称が現れる位置を探し、その前の範囲を候補にします。候補は行全体ではなく敬称直前の名前部分に限定します。氏名の内部空白を残し、前後の空白や記号だけを整理します。

function extractAddressee(text) {
  const normalized = String(text ?? '').replace(/\r\n?/g, '\n');
  const match = normalized.match(/(?:^|\n)\s*([^\n,、。]{1,40}?)\s*(様|さん|御中)(?:[\s,、。]|$)/);
  if (!match) return null;
  const name = match[1].trim();
  if (!name || /^(お客様各位|関係者各位|ご担当者様)$/.test(name)) return null;
  if (/様子$/.test(name)) return null;
  return name;
}

実際の文面では敬称、句読点、改行の規則に合わせてパターンを絞ります。本文中に出てくる敬称や「様子」のような語尾を名前として拾わないことをテストします。

信頼できないときはフォールバックする

候補が空、一般的な呼びかけ、説明文、複数候補などの場合は、無理に抽出しません。アカウント名など別の信頼できる値を使うか、利用者に確認します。曖昧な値を確定した宛名として表示するより、抽出できなかった状態を返す方が安全です。

入力例を表にして、成功・拒否・フォールバックの期待値をテストします。全角空白、敬称前の空白、複数行、句読点、「様子」のような部分一致を含めます。

まとめ

日本語の宛名抽出は敬称の正規表現だけで完結しません。候補の境界、拒否条件、フォールバックを明示し、純粋関数として例を網羅してテストしましょう。

関連記事

この技術で業務改善しませんか?

Excel VBA・GAS・Webアプリで業務の自動化ツールを開発しています。 「こんなことできる?」というご相談だけでもお気軽にどうぞ。

無料相談はこちら →