【问题标题】:Clean Phone Number String清理电话号码字符串
【发布时间】:2014-10-28 20:56:34
【问题描述】:

我有这样的事情

TAG POS=1 TYPE=INPUT:TEXT FORM=ID:crm_case_add ATTR=ID:CrmCasePhoneNumber EXTRACT=TXT

所有电话号码均采用以下格式:800-128-1990 或 (800)128-1981 或 291 399 5913

我想要像 8002893884 这样的纯文本。我该怎么做?

【问题讨论】:

    标签: string imacros


    【解决方案1】:

    只需将以下行添加到您的宏中:

    SET !EXTRACT EVAL("'{{!EXTRACT}}'.replace(/[-()\\s]/g,'')")
    

    【讨论】:

      【解决方案2】:

      对于那些希望使用 SQL 进行操作的人

      我使用一个功能来清理电话号码,这将解决所有电话号码问题或清除该字段。如果为空则返回 Null(以防止错误)

      Print'/*Fix Phone Numbers Call*/'
      Update tblTemp
          Set Phone = dbo.fnPhoneFix(tblTemp.Phone)
      From tblTemp
      

      要创建函数,请使用以下代码:

      CREATE FUNCTION [dbo].[fnPhoneFix](@PhoneOld VarChar(20))
          Returns VarChar(10)
      AS
          Begin
          Declare @iCnt Int = 0
          Declare @PhoneNew VarChar(15)  = ''
      
          IF @PhoneOld IS NULL
              RETURN NULL;
      
          While @iCnt <= LEN(@PhoneOld)
              Begin
                  IF Substring(@PhoneOld,@iCnt,1) >= '0' AND Substring(@PhoneOld,@iCnt,1) <= '9'
                  Begin
                      SET @PhoneNew = @PhoneNew + Substring(@PhoneOld,@iCnt,1)
                  End
                  Set @iCnt = @iCnt + 1
              End
      
          If LEN(@PhoneNew) > 10 and Left(@PhoneNew, 1) = '1'
              Set @PhoneNew = RIGHT(@PhoneNew,10);
          Else
              Set @PhoneNew = Left(@PhoneNew,10);
      
          If LEN(@PhoneNew) <> 10
              Set @PhoneNew ='';
          Return @PhoneNew
      End
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-02-15
        • 2019-12-18
        • 2014-01-01
        • 1970-01-01
        • 2022-01-23
        • 2013-02-05
        相关资源
        最近更新 更多