2014-10-28 30 views
1

我有這樣的事情清潔手機串號

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.我該怎麼做?

回答

0

只需添加下面一行到您的宏:

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

對於那些希望在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