質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

7925閲覧

電話番号 ハイフンなしの場合の切り分け方

coko1

総合スコア276

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/03/28 07:59

編集2017/03/28 08:04

携帯電話番号がハイフンなしの場合に、
後ろ4桁
真ん中4桁
上記より手前の残りという風に切り出したいのですが、どのようにすればよいでしょうか?

後ろ4桁は substr($tel,-4);
真ん中4桁は substr($tel,-8,4);
のようにすればとれるのですが、後ろ8桁より手前の桁の取得方法がわかりません。お力を貸していただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

切り出し方は既にみなさん書かれているので省略しますが……
電話番号の論理的な分割場所は 4-4 と決まっていません。
どういうパターンがあるかは総務省のホームページに記載があります。

050電話番号なら 3-4-4、携帯は3-3-5 となっています。
これは電話番号割り当て計画上のブロックの都合で、電話番号の表記としてはどこで切っても構わないです。なのでリズム的に良いと思われる 3-4-4 表記が一般的なのでしょうね。

投稿2017/03/28 08:21

tacsheaven

総合スコア13703

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2017/03/28 08:43

市外局番まで正しい位置で切ろうとすれば、相応のデータベースが必要となります(07-85XX-YYYYではなく、078-5XX-YYYY、というように)。
tacsheaven

2017/03/28 08:48

少なくとも正規表現でどうこうしようと思ったら負けですね。 だって、0126-DE-FGHI という分け方と、01267-E-FGHI という分け方がありますからねえ…(こんなの氷山の一角)
raichi

2017/03/29 02:45

世の中にハイフン無しで入力して!形式が多いのはこれのせい
guest

0

上記より手前の残り:

php

1substr($tel,0,-8);

かな。

例: substr("01234567", 0, -4); // "0123" を返す

http://php.net/manual/ja/function.substr.php 参照。

length が指定され、かつ負である場合、 string の終端からその文字数分の文字が省略されます

投稿2017/03/28 08:10

編集2017/03/28 08:14
CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

思いついたままにコード化。
たぶんもっとうまい書き方はある。

PHP

1$tel1 = substr($tel, 0, strlen($tel)-8); 2$tel2 = substr($tel, -8, 4); 3$tel3 = substr($tel, -4); 4

投稿2017/03/28 08:09

編集2017/03/28 08:10
ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

後ろから4桁、4桁、それ以外と取りたいならこうですね

PHP

1print substr($tel,0,strlen($tel)-8)."-".substr($tel,-8,4)."-".substr($tel,-4);

10桁以上なら有効です
(ただし電話番号とし有効だと保証するものではありません)

投稿2017/03/28 08:09

yambejp

総合スコア114769

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問