Introduction
住所のデータを引っ張ってきた時に都道府県、市区町村、町字ってわけるのが多いと思うのですが
政令指定都市だと市区町村のところが、〇〇市〇〇区になっていたりする。
※町字に入ることもあるけど。。。
地味にここを分けて表示したいというニーズが意外となかったので、備忘録!!
Code
const cityName = "川崎市中原区"
const cityNameString = cityName.replace(/^(.{1,4}市)(.+)/, '$1 $2').split(' ');
// 四日市など”市”の前に”市”を使う地名があるためここで整形
const cityNameArray = cityNameString.match(/^(四日市|廿日市|野々市)/) !== null ? cityNameString.replace(/\s+/g, "").split('') : cityNameString.split(' ')
// ['川崎市', '中原区']
// 政令指定都市の中で最長は'さいたま'の4文字、最短が'堺'の1文字のため、1〜4文字で判定するようにしてます
Conclusion
町字で区とそれ以下を分けるときも同じことできそうw
追記・編集 2022年1月21日
@jnchito さんからのアドバイスにより、文字列作成の箇所を更新いたしました!!
ご助言ありがとうございます!!
https://qiita.com/ChaaaBooo/items/781fa952b58198eb2a0b#comment-2c831ede953799252614
## References
- 都道府県と市町村区を分割し、配列に格納する。
https://qiita.com/kajitack/items/d457fb4a811ddc53952a