我在客户的网站上的联系表单中有一个简单的"电话号码"文本字段.formmail脚本返回用户键入字段的任何内容.例如,他们将收到"000-000-0000","0000000000",(000)000-000等.客户希望以这种形式接收所有电话号码:000-000-0000.有人可以提供一个简单的脚本来删除所有无关的标点符号,然后重新插入破折号吗?
我不是程序员,只是设计师所以我不能提供任何现有代码供任何人评估,尽管我很乐意通过电子邮件将formmail脚本发送给任何可以提供帮助的人.
谢谢.A.格兰特
<?php
function formatPhone($number)
{
$number = preg_replace('/[^\d]/', '', $number); //Remove anything that is not a number
if(strlen($number) < 10)
{
return false;
}
return substr($number, 0, 3) . '-' . substr($number, 3, 3) . '-' . substr($number, 6);
}
foreach(array('(858)5551212', '(858)555-1212', '8585551212','858-555-1212', '123') as $number)
{
$number = formatPhone($number);
if($number)
{
echo $number . "\n";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
以上回报:
858-555-1212
858-555-1212
858-555-1212
858-555-1212
Run Code Online (Sandbox Code Playgroud)
像这样的东西
function formatPhone($number)
{
$number = str_replace(array('(', ')', '-', ' '), '', $number);
if (strlen($number) == 10)
{
$area = substr($number, 0, 3);
$part1 = substr($number, 3, 3);
$part2 = substr($number, 6);
return "$area-$part1-$part2";
}
else
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
如果传入的数字长度为 10 位,它将返回格式正确的数字。否则会返回FALSE
| 归档时间: |
|
| 查看次数: |
5180 次 |
| 最近记录: |