带有字母的电话号码的RegEx [英] RegEx for Phone Number Numbers with Letters

查看:186
本文介绍了带有字母的电话号码的RegEx的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将电话号码格式化为一串长号码(美国电话号码格式)

  //我知道(
'1(800)555-1212',
'1.800.555.1212',
'800.555.1212',
'1 800 555 1212',
'1.800 CALL NOW'// 1 800 225-5669
);
$ b $ foreach($ phone作为$ phone){
echonew format:。(preg_replace(/ [^ 0-9] /,,$ phone)。 < br /> \\\
;
}

现在,像这样:

  8005551212(带或不带1)

但是,如何将CALL NOW中的数字映射/转换为:

  18002255669 


解决方案

您可以使用 strtr()

  $ number = strtr($ number,array('A'= >'2','B'=>'2',...'Z'=>'9')); 



实际上,我认为:
$ b $ pre $ $ $ $ $ strtr($ number,AB ... Z,22 ... 9);


I need to format a phone number as one long string of numbers (US Phone Number format)

// I know there are tons more
$phones = array(
    '1(800) 555-1212',
    '1.800.555.1212',
    '800.555.1212',
    '1 800 555 1212',
    '1.800 CALL NOW' // 1 800 225-5669
);

foreach($phones as $phone) {
    echo "new format: ".(preg_replace("/[^0-9]/", "", $phone)."<br />\n";
}

Now this should return something like this:

8005551212 (with or without the 1)

but how do I map/convert the number with CALL NOW to:

18002255669

解决方案

You could use strtr().

$number = strtr($number, array('A'=> '2', 'B' => '2', ... 'Z' => '9'));

Or actually, I think:

$number = strtr($number, "AB...Z", "22...9");

这篇关于带有字母的电话号码的RegEx的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆