代码之家  ›  专栏  ›  技术社区  ›  Ivan

如何使用PHP规范化SQL列中的电话号码?

  •  -2
  • Ivan  · 技术社区  · 6 年前

    我在SQL数据库中有一个表,其中有一个电话号码列,其中包含许多号码。数字如下:

    350-564-3210 350.564.3210 (350) 564-3210

    这些数字不是标准化的。我想用这样的格式规范化:

    +13505643210

    它包括+1作为国家代码的前缀。

    3 回复  |  直到 6 年前
        1
  •  2
  •   Kedar Limaye    6 年前

    首先让我们看看你的任何疑问, 就我而言,你所说的正常化是什么意思?

    你需要一个函数- 替换特殊字符,然后在字符串左侧附加+1

    你可以这样替换和合并

    select concat('+1',replace('350-564-3210','-',''))
    

    但是对于一个电话号码,你需要做一个泛化函数

    但还是要看看这个- http://sqlfiddle.com/#!9/3de17b0/10

        2
  •  1
  •   Fahmi    6 年前

    尝试使用REGEXP\u REPLACE()

    Demo

    SELECT concat('+1',REGEXP_REPLACE('(350).564.3210','[-.()]','',1,0))
    
        3
  •  0
  •   Roshni hegde    6 年前

    在数组中存储特殊字符。执行字符串替换并连接+1。 请尝试以下操作

    $string = "350-564.3210";
    $arrayString = array('-', '.', ')', '(', ' ');
    $result = str_replace($arrayString, '', $string);
    print_r('+1'.$result);