diff --git a/src/normalize.ts b/src/normalize.ts index 5eea88c062..8ef784888e 100755 --- a/src/normalize.ts +++ b/src/normalize.ts @@ -442,7 +442,7 @@ export const normalize: Normalizer = async ( /([0-9]+|[〇一二三四五六七八九十百千]+)\s*(番地?)\s*([0-9]+|[〇一二三四五六七八九十百千]+)\s*号?/, '$1-$3', ) - .replace(/([0-9]+|[〇一二三四五六七八九十百千]+)番地?/, '$1') + .replace(/([0-9]+|[〇一二三四五六七八九十百千]+)番(地|$)/, '$1') .replace(/([0-9]+|[〇一二三四五六七八九十百千]+)の/g, '$1-') .replace( /([0-9]+|[〇一二三四五六七八九十百千]+)[--﹣−‐⁃‑‒–—﹘―⎯⏤ーー─━]/g, diff --git a/test/addresses.csv b/test/addresses.csv index 0dda10e16e..507f7d1c79 100644 --- a/test/addresses.csv +++ b/test/addresses.csv @@ -1861,7 +1861,7 @@ 東京都世田谷区粕谷3丁目11-7,東京都,世田谷区,粕谷三丁目,11-7 東京都世田谷区粕谷3丁目14-7,東京都,世田谷区,粕谷三丁目,14-7 東京都世田谷区粕谷3丁目30-11,東京都,世田谷区,粕谷三丁目,30-11 -東京都世田谷区粕谷4丁目8番以下未定,東京都,世田谷区,粕谷四丁目,8以下未定 +東京都世田谷区粕谷4丁目8番以下未定,東京都,世田谷区,粕谷四丁目,8番以下未定 東京都世田谷区経堂1丁目35-21,東京都,世田谷区,経堂一丁目,35-21 東京都世田谷区経堂1丁目6-12,東京都,世田谷区,経堂一丁目,6-12 東京都世田谷区経堂2丁目27-9,東京都,世田谷区,経堂二丁目,27-9 @@ -2636,7 +2636,7 @@ 東京都品川区小山6丁目21-2,東京都,品川区,小山六丁目,21-2 東京都品川区小山6丁目22ー11,東京都,品川区,小山六丁目,22-11 東京都品川区小山6丁目7-6,東京都,品川区,小山六丁目,7-6 -東京都品川区平塚2丁目11番以下未定,東京都,品川区,平塚二丁目,11以下未定 +東京都品川区平塚2丁目11番以下未定,東京都,品川区,平塚二丁目,11番以下未定 東京都品川区平塚2丁目20-8,東京都,品川区,平塚二丁目,20-8 東京都品川区平塚2丁目6-2,東京都,品川区,平塚二丁目,6-2 東京都品川区平塚3丁目11-1,東京都,品川区,平塚三丁目,11-1 @@ -3733,7 +3733,7 @@ 東京都杉並区和泉4丁目5-5,東京都,杉並区,和泉四丁目,5-5 東京都杉並区和田1丁目16-16,東京都,杉並区,和田一丁目,16-16 東京都杉並区和田1丁目22-16,東京都,杉並区,和田一丁目,22-16 -東京都杉並区和田1丁目31番以下未定,東京都,杉並区,和田一丁目,31以下未定 +東京都杉並区和田1丁目31番以下未定,東京都,杉並区,和田一丁目,31番以下未定 東京都杉並区和田3丁目28-2,東京都,杉並区,和田三丁目,28-2 東京都杉並区和田3丁目6-16,東京都,杉並区,和田三丁目,6-16 東京都杉並区善福寺1丁目27-20,東京都,杉並区,善福寺一丁目,27-20 @@ -6835,7 +6835,7 @@ 神奈川県横浜市青葉区荏田西1丁目12-17,神奈川県,横浜市青葉区,荏田西一丁目,12-17 神奈川県横浜市青葉区荏田西1丁目12-28,神奈川県,横浜市青葉区,荏田西一丁目,12-28 神奈川県横浜市青葉区荏田西2丁目1-8,神奈川県,横浜市青葉区,荏田西二丁目,1-8 -神奈川県横浜市青葉区荏田西2丁目10番  号,神奈川県,横浜市青葉区,荏田西二丁目,10 号 +神奈川県横浜市青葉区荏田西2丁目10番  号,神奈川県,横浜市青葉区,荏田西二丁目,10番 号 神奈川県横浜市青葉区荏田西2丁目14-2,神奈川県,横浜市青葉区,荏田西二丁目,14-2 神奈川県横浜市青葉区荏田西2丁目15-5,神奈川県,横浜市青葉区,荏田西二丁目,15-5 神奈川県横浜市青葉区荏田西2丁目20-10(C棟) 20-27(D棟),神奈川県,横浜市青葉区,荏田西二丁目,20-10(C棟) 20-27(D棟) diff --git a/test/main.test.ts b/test/main.test.ts index 72b25bb8e3..4b07c86406 100644 --- a/test/main.test.ts +++ b/test/main.test.ts @@ -858,7 +858,7 @@ for (const [runtime, normalize] of cases) { test('東京都千代田区三番町2番地4三番町KSビル10階(番地と建物名が混ざり、「番」が消えることがないこと)', async () => { const res = await normalize('東京都千代田区三番町2番地4三番町KSビル10階') - expect(res).toStrictEqual({"pref": "東京都", "city": "千代田区", "town": "三番町", "addr": "2-4三町KSビル10階", "lat": 35.690557, "lng": 139.743591, "level": 3}) + expect(res).toStrictEqual({"pref": "東京都", "city": "千代田区", "town": "三番町", "addr": "2-4三番町KSビル10階", "lat": 35.690557, "lng": 139.743591, "level": 3}) }) test('東京都千代田区神田美土代町9番地7千代田21ビル7階(「7千代田」が「7000代田」にならないこと)', async () => { @@ -874,6 +874,11 @@ for (const [runtime, normalize] of cases) { }) }) + test('神奈川県川崎市川崎区駅前本町15番5十五番館ビル(「5十五番館ビル」が「番」が消えずに「5十五番館ビル」となる)', async () => { + const res = await normalize('神奈川県川崎市川崎区駅前本町15番5十五番館ビル') + expect(res).toStrictEqual({"pref": "神奈川県", "city": "川崎市川崎区", "town": "駅前本町", "addr": "15-5十五番館ビル", "lat": 35.532434, "lng": 139.6996, "level": 3}) + }) + describe('途中にスペースを含むケース', () => { // https://github.com/geolonia/normalize-japanese-addresses/issues/180 test('京都府京都市 下京区上之町999', async () => {