带有字母的电话号码的RegEx [英] RegEx for Phone Number Numbers with Letters
本文介绍了带有字母的电话号码的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屋!
查看全文