PhoneNumbers の RegEx にいくつかの問題があります。これまでのところ動作しますが、「//」をスペースに置き換える方法がわかりません。
入力: 0()()()111 1-11* // *1111
予定:: +49 111 111 1111
得た: +49 111 1111111
$pattern = array(
'/[^0-9\+\.\-\(\) ]/', // Cut all characters that are not allowed
'/^00/', // Start with 00 ist changed to +
'/^(0)(\d)/', // Start with 0[1-9] ist changed to +49 [0-9]
'/[\.\-\(\)]/', // Change allowed characters to ' '
'/\s[\s]+/', // Change grouped spaces too one
'/((\+49 )(0))(.*)/'
);
$change = array('', '+', '+49 $2', ' ', ' ', '$2$4');
$value = preg_replace($pattern, $change, $value);
以下に文字を追加:
'/[\.\-\(\)]/', // Change allowed characters to ' '
動作しません。申し訳ありませんが、正規表現に関する私の知識は限られています。