2025年2月10日 星期一

比對地址的區域選項

有個神秘的需求,使用者透過API 傳遞地址資料,接收後解析地址將城市及區域對應到

頁面上的兩個下拉選項,若對應不到則保留選項,這篇主要是留下思考脈絡...



依照需求,若地址輸入正確會正確對應到下拉選項,如下圖所示



實務面來看,若使用者輸入城市(city),如臺北市,一般都不會輸入錯誤,倒是區域很常出錯,

如輸入信區、義區,但照理說這類的文字應該是不會比對到選項的,如以下兩張圖




故在程式邏輯上,若城市選項有對應到,會去拉該城市對應的區域,此時再將

區域選項逐一去比對,match 到了就離開判斷


此舉的主要意義是,因為各城市(city)下的區域,其實是2~4的字都有,如新竹的

東區、北區,或是台東的太麻里鄉、三地門相等等的


故無法假定地址內容中扣除 city後,多少區間的文字內容就一定是區域,所以

透過下拉選項去取對應長度的地址片段來比對才是保險作法,如上述所示


當地址為新竹市東區...,城市(city) = 新竹市,會被對應到,並且帶出區域下拉

選項,用這些下拉選項逐項去比對,如要比對到「東區」,就會從地址中扣除

city 後,取長度 2 的字串當作區域比對,若比對到了,就離開判斷式;

若都沒有比對到,就保留選項不指定。


沒有留言:

張貼留言