最近、Node.jsでウェブサービスを作ることが多いです。
ユーザーが入力した電話番号は、半角数字や全角数字、ハイフンや括弧の有無など、表記がバラつきがちですよね。
後で検索したくなったときに、これでは扱い辛いので、半角数字のみにしたいなと。だからといって、入力フォームを半角数字のみに制限するとか、ダッサイことはしたくない。
Elasticsearchなんかだと、DBに突っ込む際に自動化できるんだけど、今回はMySQL+Node.jsなので、自前でJavaScriptで実装してみましたよっと。
こんな関数でいいんじゃないかしら。
// 電話番号を半角数字のみに加工する
const telSanitize = (tel) => {
return tel.replace(/[A-Za-z0-9]/g, (s) => {
return String.fromCharCode(s.charCodeAt(0) - 65248)
}).replace(/[^0-9]/g, '')
}
// こんな感じで使う
telSanitize('(03)123-4567')
=> 031234567
また使うかもしれないので、ブログに残しておきましたとさ。
ホームページの制作(デザイン・コーディング・プログラミング)に加え、ネットショップの販売促進に関するアドバイスも致します。 20年以上に渡って実際にネットショップを運営した経験を生かし、聞きかじりではない実績を伴ったノウハウを、自分の言葉でお伝えいたします。 プログラミングの経験は30年以上。HTML、CSS、JavaScript、TypeScript、Vue、NuxtJS、Node.js、MySQL、MongoDB、Elasticsearch、WordPress、PHP、Docker、Electronなど、幅広く対応します。
コメント