1.フォームの住所入力欄は1つのテキストフィールドだが、
DBに格納するデータとしては、都道府県とそれ以外に分けたい時。
(1はOKだが、都道府県から始まっていることが前提。)
form_input_address_1.js
address = '大阪府大阪市中央区〇〇町△番地';
address.replace(/^(.{2}[都道府県]|.{3}県)(.+)/, "$1 $2").split(' ');
// ['大阪府','大阪市中央区〇〇町△番地']
address_data_1 = address[0]; // '大阪府'
address_data_2 = address[1]; // '大阪市中央区〇〇町△番地'
2.住所が都道府県から始まっていない時。
(2はNG:都道府県のデータを格納したい変数に市以下が格納されてしまっている。)
form_input_address_2.js
address = '大阪市中央区〇〇町△番地';
address.replace(/^(.{2}[都道府県]|.{3}県)(.+)/, "$1 $2").split(' ');
// ['大阪市中央区〇〇町△番地']
address_data_1 = address[0]; // '大阪市中央区〇〇町△番地'
address_data_2 = address[1]; // ''
3.住所が都道府県から始まっていない時。
(2を配列の要素数で条件分岐。都道府県がなれけば空白にする。)
form_input_address_3.js
// 住所が都道府県から始まっている場合
address = '大阪府大阪市中央区〇〇町△番地';
address.replace(/^(.{2}[都道府県]|.{3}県)(.+)/, "$1 $2").split(' ');
// ['大阪府','大阪市中央区〇〇町△番地']
if (address.length === 1) {
address_data_1 = '';
address_data_2 = address[0];
} else {
address_data_1 = address[0]; // '大阪府'
address_data_2 = address[1]; // '大阪市中央区〇〇町△番地'
}
// 住所が都道府県から始まっていない場合
address = '大阪市中央区〇〇町△番地';
address.replace(/^(.{2}[都道府県]|.{3}県)(.+)/, "$1 $2").split(' ');
// ['大阪市中央区〇〇町△番地']
if (address.length === 1) {
address_data_1 = ''; // ''
address_data_2 = address[0]; // '大阪市中央区〇〇町△番地'
} else {
address_data_1 = address[0];
address_data_2 = address[1];
}