Skip to content

isValidLawId の仕様 ​

INFO

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

文字列が e-Gov の law_id の形をしているかを判定する

使いどころ・引数・実測の呼び出し例は、関数のページにあります。

最後に仕様が変わったのは v0.7.0 の「引数の検査を「丸めない」に揃える(limit・取得時刻・law_id の形)」(2026-09-30 承認)です。それまでの経緯は承認の履歴にあります。

利用者と得られる結果 ​

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

  • houki-abbreviations を import する側(houki-egov-mcp・houki-nta-mcp などの MCP サーバー、辞書を検査する validateAllEntries、辞書のテスト)。law_id を渡して、e-Gov の法令 ID として形が正しいかを true / false で受け取る

入力 ​

呼び出すときに渡す値です。

引数必須内容
law_id必須判定する文字列。例: 363AC0000000108。前後の空白は取り除かない(呼び出し側で取り除く)

戻り値 ​

呼び出しが返す値です。

boolean。下の表のどれかの形に一致すれば true、それ以外は false。例外は投げない。

受け付ける law_id の形は e-Gov の公式仕様(法令データ ドキュメンテーション「法令種別と法令ID」 https://laws.e-gov.go.jp/docs/law-data-basic/607318a-lawtypes-and-lawid/ )に合わせた次の 6 つで、長さはどれも 15 文字、英字は大文字だけです。件数は 2026-09-30 に e-Gov 法令 API v2 GET /api/2/laws で取得した全 9,570 件の内訳で、6 つの形で全件が true になります。

形対象件数例
元号 1 桁 + 年 2 桁 + AC / CO / IO / DF / DT / DH + 数字 10 桁法律・政令・勅令・太政官布告・太政官達・太政官布達4,677363AC0000000108(消費税法)
元号 1 桁 + 年 2 桁 + M + 1〜6 + 数字と A〜F の 7 文字 + 数字 3 桁府省令(M1〜M6 は府省令ビットフラグの世代)4,687340M50000040011(所得税法施行規則)
元号 1 桁 + 年 2 桁 + R + 数字 8 桁 + 数字 3 桁会計検査院規則、行政機関の規則、その他機関の規則49322R00000001001(会計検査院規則)
元号 1 桁 + 年 2 桁 + RJNJ + 数字 8 桁人事院規則142324RJNJ01001000
元号 1 桁 + 年 2 桁 + RPMD + 数字 8 桁内閣総理大臣決定14351RPMD12230000
321CONSTITUTION日本国憲法(昭和二十一年憲法の 1 件だけ)1321CONSTITUTION

元号の 1 桁は 1(明治)2(大正)3(昭和)4(平成)5(令和)のどれか。年の 2 桁は 0 埋めで、値の範囲は確かめない。R の後の機関番号は 10 進の 8 桁で、値の範囲(公式仕様の 00000001〜00000019)は確かめない。DH(太政官布達)は公式仕様にあり、2026-09-30 の e-Gov には 0 件。AC などの 6〜12 桁目(閣法・議員立法・効力の区別)の値は確かめない。

扱わないこと ​

この機能が意図して扱わないことです。

  • その law_id の法令が e-Gov に実在するかを確かめること(形だけを見る。実在の確認は e-Gov API を呼ぶ scripts/verify-law-ids.mjs で、パッケージには含まれない)
  • law_id から法令名やエントリを引くこと(lookupByLawId)
  • 前後の空白・全角文字・小文字を直して判定すること(直さずに false を返す)
  • 法令番号(昭和六十三年法律第百八号 の形)を判定すること(law_num は対象外。表記を揃えるのは normalizeLawNum)

処理の流れ ​

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

仕様項目 ​

この機能の仕様項目を、仕様 ID ごとに並べています。見出しは仕様項目を 1 文で表したもので、条件・応答の細部・例は「詳細」を開くと読めます。仕様 ID はそれぞれ受入テストと対応していて、テストの無い ID があると各リポジトリの CI が止まります。

SPEC-ABBR-IS-VALID-LAW-ID-001 法律・政令・勅令・太政官布告・太政官達・太政官布達の形を受け付ける ​

詳細

元号 1 桁(1〜5)+ 年 2 桁 + AC / CO / IO / DF / DT / DH のどれか + 数字 10 桁の 15 文字なら true を返す。

例: 363AC0000000108(法律)、505CO0000000034(政令)、320IO0000000730(勅令)、105DF0000000337(太政官布告)、108DT0000000152(太政官達)、106DH0000000016(太政官布達)は、どれも true。DH は v0.7.0 から受け付ける。

SPEC-ABBR-IS-VALID-LAW-ID-002 府省令の M の形と、機関の規則の R の形を受け付ける ​

詳細

元号 1 桁 + 年 2 桁 + M + 1〜6 の 1 桁 + 数字と大文字 A〜F からなる 7 文字(府省令ビットフラグの 16 進数)+ 数字 3 桁の 15 文字、または元号 1 桁 + 年 2 桁 + R + 数字 8 桁(機関番号)+ 数字 3 桁の 15 文字なら true を返す。

例: 340M50000040011(所得税法施行規則)、415M60000F4A003(共同省令)、122M10000001012(明治の閣令)、322R00000001001(会計検査院規則)、326R00000002002(海上保安庁令)は true。415M60000G4A003(G は 16 進数に無い)は false。

SPEC-ABBR-IS-VALID-LAW-ID-003 人事院規則と内閣総理大臣決定の形を受け付ける ​

詳細

数字 3 桁 + RJNJ + 数字 8 桁、または数字 3 桁 + RPMD + 数字 8 桁なら true を返す。v0.6.0 から受け付ける。

例: 324RJNJ01001000(人事院規則一―一)と 351RPMD12230000(内閣総理大臣決定)は true。

SPEC-ABBR-IS-VALID-LAW-ID-004 憲法の形を受け付ける ​

詳細

321CONSTITUTION だけを true にする。e-Gov にある憲法は昭和二十一年憲法(日本国憲法)の 1 件だけなので、先頭 3 桁が 321 以外の CONSTITUTION は受け付けない。

例: 321CONSTITUTION は true。363CONSTITUTION と 521CONSTITUTION は false(v0.6.1 では true)。

SPEC-ABBR-IS-VALID-LAW-ID-005 e-Gov に無い MO・RU の形は受け付けない ​

詳細

種別が MO / RU の形は false を返す。v0.5.x では true だった(e-Gov の実データに 1 件も無いため v0.6.0 で外した)。

例: 505MO0000000020 と 505RU0000000001 は false。

SPEC-ABBR-IS-VALID-LAW-ID-006 知らない種別コードは受け付けない ​

詳細

表の 5 つの形に無い種別コードなら、長さが 15 文字でも false を返す。

例: 363XX0000000108 は false。

SPEC-ABBR-IS-VALID-LAW-ID-007 15 文字でなければ受け付けない ​

詳細

長さが足りない、または余る文字列は false を返す。

例: 363AC123(8 文字)と 363AC00000001080(16 文字)は false。

SPEC-ABBR-IS-VALID-LAW-ID-008 空文字は受け付けない ​

詳細

'' は false を返す。

SPEC-ABBR-IS-VALID-LAW-ID-009 前後の空白を取り除かない ​

詳細

前後に空白が付いた文字列は、空白を取り除けば正しい形でも false を返す。空白を取り除くのは呼び出し側。

例: ' 363AC0000000108' は false。

SPEC-ABBR-IS-VALID-LAW-ID-010 小文字の英字は受け付けない ​

詳細

英字が小文字なら false を返す(e-Gov の law_id は英字が大文字)。

例: 363ac0000000108 は false。

SPEC-ABBR-IS-VALID-LAW-ID-011 文字列でない値は受け付けない ​

詳細

law_id に文字列でない値を渡すと false を返す。

例: null、undefined、123 は、どれも false。

SPEC-ABBR-IS-VALID-LAW-ID-012 全角の英数字は受け付けない ​

詳細

英字か数字のどれかが全角なら false を返す。半角に直してから判定することはしない。

例: 363AC0000000108(A が全角)と 363AC0000000108(8 が全角)は false。

SPEC-ABBR-IS-VALID-LAW-ID-013 元号の桁が 1〜5 以外なら受け付けない ​

詳細

先頭の 1 桁が 1〜5 でなければ、残りが正しい形でも false を返す。

例: 000AC0000000000、699AC0000000001、999AC9999999999、040M50000040011、924RJNJ01001000 は、どれも false(v0.6.1 では true)。105DF0000000337(明治)と 501M60000F00006(令和)は true。

SPEC-ABBR-IS-VALID-LAW-ID-014 M の次の 1 桁が 1〜6 以外なら受け付けない ​

詳細

府省令の形で M の次の 1 桁が 0、7〜9、A〜F のときは false を返す。

例: 340M00000040011、340M70000040011、340MF0000040011 は、どれも false(v0.6.1 では true)。340M10000040011 と 340M60000040011 は true。

SPEC-ABBR-IS-VALID-LAW-ID-015 R の機関番号に英字があれば受け付けない ​

詳細

R の後の 8 桁は 10 進の数字だけ。A〜F を含むと false を返す。M の形(16 進数)とは違う。

例: 322R0000000A001 と 322RA000000A001 は false(v0.6.1 では true)。322R00000001001 は true。

実装する人に向けた情報 ​

ここから下は、この機能を実装する人と、仕様の変更を追う人に向けた節です。使い方を知りたいだけなら、読まなくて構いません。

検討中のこと ​

仕様を書き起こしたときに見つかった項目のうち、扱いを Issue で検討しているものです。ここに挙げたことは、今後の版で変わることがあります。開くと、元の仕様書の記述をそのまま読めます。

仕様書の「未決」の節

初版起こしで見つけた、意図か不具合かを人が決める項目です。決まったら「できること」に ID を振るか、specs/changes/ の差分にします。

意図か不具合かの判断が要る項目は houki-abbreviations の Issue に移し、ここには題と Issue の番号だけを残します。今の振る舞いのままでよくテストが無いだけの項目は、受入テストを書いてから「できること」に ID を振ります。

  1. 先頭 3 桁(元号と年)の値を確かめない。 → SPEC-ABBR-IS-VALID-LAW-ID-013
  2. M の形の府省コードの 1 文字目が、実装の注記と違う範囲まで通る。 → SPEC-ABBR-IS-VALID-LAW-ID-014、SPEC-ABBR-IS-VALID-LAW-ID-015
  3. 文字列でない値は false。 → SPEC-ABBR-IS-VALID-LAW-ID-011
  4. 全角の英数字は false。 → SPEC-ABBR-IS-VALID-LAW-ID-012

承認の履歴 ​

この機能の仕様が、いつ、どの変更で承認されたかを新しい順に並べています。各リポジトリの npx spec-ids history is_valid_law_id と同じ内容です。変更の名前から、変更の理由と前後の振る舞いを書いた文書(GitHub)を開けます。

承認の履歴(4 件)
承認日版変更仕様 PR
2026-09-30v0.7.0引数の検査を「丸めない」に揃える(limit・取得時刻・law_id の形)#31
2026-09-27v0.6.1テストが無いだけの振る舞いに仕様 ID を振る#27
2026-09-27v0.6.1「未決」のうち判断が要る 52 件を Issue に移す#26
2026-09-27—初版#10

関連ページ ​

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

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