- TOP
- Web
電話番号のパターン
国内固定番号系 | 10桁、最初の桁は「0」 | |
---|---|---|
0XXXX X XXXX | 5桁-1桁-4桁 | |
0XXX XX XXXX | 4桁-2桁-4桁 | |
0XX XXX XXXX | 3桁-3桁-4桁 | |
0X XXXX XXXX | 2桁-4桁-4桁 | |
フリーダイヤル、ナビダイヤル、Q2 (0120,0800,0570,0990) | ||
0XX0 XXX XXX | 4桁-3桁-3桁 | |
携帯、PHS、IP電話等(020,050,060,070,080,090) | 11桁、最初の桁は「0」 | |
0X0 XXXX XXXX | 3桁-4桁-4桁 | |
特番系(110、199他) | 3桁、最初の桁は「1」 | |
1XX | 3桁 |
イメージとコード
フォームに入力された電話番号のjavascriptでのバリデートの流れ。ハイフン有り無しでも正確に判別できるようにする。細かくやるなら「先頭が090か」など逐一条件分岐する。
- 先頭が0である
- ハイフン(-)でsplitすると、1つ(ハイフン未入力時)、もしくは3つ(ハイフン入力時)に分割できる
- ハイフン(-)を除いて10~11桁である
- splitした3つの内、1つ目の番号の塊が3桁、2つ目・3つ目が4桁になっている。
- splitした3つの内、1つ目の番号の塊が2~5桁、2つ目が1~4桁、3つ目が4桁になっている。
だいたいこんなイメージで下記の様な感じに書く。とりあえずのメモ。コピペしても動きません。
入力欄からハイフンをそもそも消してしまう場合はコレを記述する
参考
原因
- SESSIONを使っている
- POSTでパラメータを送信
- ブラウザの「戻る」を押した
犯人はだれだ?
原因は、PHPでSESSIONを使うと(デフォルト設定では)自動でキャッシュ制御用のHTTPヘッダーが送出され、それによりクライアント側のキャッシュが使用不可にされるため。(参考:floatingdays: PHPでブラウザキャッシュを有効にする)
つまり、下記条件を全て満たした場合にこの現象が発生する。
PHPで 「Webページの有効期限が切れてます」となる時の傾向と対策 - floatingdays
- HTTP POSTで遷移してきた。
- SESSIONを使っている。(session_start()してるか、php.ini等でsession.auto_start=1に設定している。)
- 次のページに行ってから、ブラウザの履歴機能(JavaScriptのhistory.back()を含む)で戻ってきた。
対策
方法1
session_start()する前に、session_cache_limiter('none')を書く。SESSIONを利用しても余計なHTTPヘッダが送出されない。
session_cache_limiter('none'); session_start(); // フォーム
cache_limiterにnoneというパラメータは無いからパラメータエラーとなり、結果的にHTTPヘッダを送信しないという挙動になっているらしい。
PHP: session_cache_limiter - Manual
方法2 こっちが正解
header();に色々書いて、ブラウザキャッシュを表示させる。ただし、SESSIONの最新情報が入っていないので注意が必要。
session_start(); header('Expires:-1'); header('Cache-Control:'); header('Pragma:');
今更誰にも聞けないPJAXの実装をやる。他ページの特定のDOM内をシームレスに持ってこれる。しかも高速。URLも綺麗。SEO的にも問題ない。特ダネじゃないか。
で、3つくらいあるみたいなんだけど、何が違うのか解らない。この時点で詰んでるし面倒くさい。とりあえずjquery-pjaxから実装してみる。
コード
jQuery PJAX(defunkt版)を使って検索結果の表示とURLをシームレスに切り替える。
html
javascript
公式ではこんな感じな筈。
Screen shot : 登戸エステート|川崎市多摩区登戸 登戸駅・向ヶ丘遊園駅 賃貸 不動産の登戸エステート
川崎市多摩区の不動産を取り扱う会社からサイトのスマフォ化対応などの仕事を会社で請け負いました。ありがとうございました。
川崎市多摩区登戸周辺の賃貸アパート・マンションをお探しの方、専修大学・明治大学・日本女子大学へ入学の際に一人暮らし様のお部屋を探している方は一度相談してみてはいかがでしょうか?親身になって話を聞いてくれる優しい不動産屋さんでとても頼りにます。