从包含电话号码的表单字段中删除非数字

时间:2014-01-18 08:30:45

标签: php forms

一直在搜索这个论坛,我发现我认为是帮助我的情况的代码,但我不确定如何实现它。我在WHMCS(网络托管管理软件)中有一个表单,我想将输入的电话号码转换成数字。

例如:最终用户输入(333) 444-5555,但表单会读取并记录3334445555。我还想放一个" 1。"同时在电话号码前面。因此,基于上述输入的最终输出将为1.3334445555

我的表单代码(第124行):http://pastebin.com/ngMTiPbA

这是我在本网站上找到的代码,我觉得可以帮助我。

preg_replace("/[^A-Za-z0-9 ]/", '', $string);

有人可以帮我把它放在一起吗?

3 个答案:

答案 0 :(得分:3)

这样做:

$phone - '1.' . preg_replace('/\D/', '', $phone);

正则表达式\D匹配任何非数字。

答案 1 :(得分:1)

下面的代码可以使用。

<?php
    $str = '(333) 444-5555';
    $numbers = preg_match_all('!\d+!', $str, $matches);
    $numbers = implode('',$matches[0]);
    $required_output = '1.'.$numbers;
    echo $required_output; //output will be "1.3334445555"
?>

答案 2 :(得分:0)

你可以这样做:

$myPhone = "1." + (filter_var($myInpt, FILTER_SANITIZE_NUMBER_INT));

使用此函数filter_var(http://www.php.net/manual/en/function.filter-var.php),您可以在某个指定的过滤器上清理变量(请在此处阅读以获取更多信息:http://www.php.net/manual/en/filter.filters.sanitize.php

所以,如果您的输入是

tel4568

函数回归

4568

与“1”连接你有所需的字符串。