2

私はこのような番号のリストを持っています:

123-4-5679 tha
546-5465-7 dsf
98-4564-64 ds8

数字以外のすべてをストライピングしながら、それ自体の価値を爆発させたいと思います。私はやっていますが、それはすべてを維持しているようですが、それは私に行ごとの値を与えます

$pn = preg_replace("/\r/", "\n", preg_replace("/\r\n/", "\n", $_POST['phone']));
$phone_numbers = explode("\n", $pn);
4

4 に答える 4

4

正規表現の 1 行で実行することもできます。

preg_match_all(":([0-9-]+):mi", $_POST["phone"], $match);

これが例です

編集:ハイフンを削除するには、結果を反復処理し、ハイフンを空の文字列に置き換えます

preg_match_all(":([0-9-]+):mi", $_POST["phone"], $matches);

// remove extra match array
$matches = array_shift($matches);

foreach( $matches as & $match )
{
   $match = preg_replace(":-:", "", $match);
}

更新された

于 2013-03-08T08:08:07.987 に答える
1

数字と改行以外はすべて削除します。

$cleaned = preg_replace("/[^0-9\n]/", "", $_POST['phone']);

そしてexplodeそれ:

$numbers = explode("\n", $cleaned);
于 2013-03-08T07:59:30.513 に答える
0

すべての数字を保持し、行区切り記号以外のすべてに一致させます。

~(?![\d-]+).*~

各一致を空の文字列に置き換えるための PHP での使用法

$numbers = preg_replace("~(?![\d-]+).*~", '', $phone);

結果:

123-4-5679
546-5465-7
98-4564-64
于 2013-03-08T08:18:25.743 に答える
-2

わかりました、私は何かが欠けていますか?

$phone = explode(' ', $_POST['phone']);
$phone_number = $phone[0];

これは機能していませんか?

于 2013-03-08T07:58:57.303 に答える