非法字符处理(替换)

FUNCTION ZF_REPLACE_STR.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  CHANGING
*"     REFERENCE(STR) TYPE  CLIKE
*"----------------------------------------------------------------------
*替换文本中的违规字符
*双引号 " 修改为 波浪号 ~
*单引号 ' 修改为 波浪号 ~
*双减号 -- 修改为 全角减号 -
*括号 () 修改为 尖角括号 []
*百分号 % 修改为 除号 #
*"----------------------------------------------------------------------

  IF STR IS INITIAL.
    RETURN.
  ENDIF.

  

  "去掉回车符

  PERFORM FRM_REPLACE_SPCIL_CHAR USING '32' CHANGING P_STR.

  "替代字符

  REPLACE ALL OCCURRENCES OF '''' IN STR  WITH '~'.
  REPLACE ALL OCCURRENCES OF '--' IN STR  WITH '-'.
  REPLACE ALL OCCURRENCES OF '(' IN STR  WITH '['.
  REPLACE ALL OCCURRENCES OF ')' IN STR  WITH ']'.
  REPLACE ALL OCCURRENCES OF '%' IN STR  WITH '#'.
  REPLACE ALL OCCURRENCES OF '"' IN STR  WITH ''.
  REPLACE ALL OCCURRENCES OF '"' IN STR  WITH ''.

  CONDENSE P_STR NO-GAPS.  "压缩空格

ENDFUNCTION.

*&---------------------------------------------------------------------*

*&      Form  FRM_REPLACE_SPCIL_CHAR
*&---------------------------------------------------------------------*
*       去掉字符串中的回车符
*----------------------------------------------------------------------*
*      -->P_STR      text
*----------------------------------------------------------------------*
FORM FRM_REPLACE_SPCIL_CHAR USING P_ASCILI CHANGING P_STR.
  DATA:FRM_STR(100),
       FRM_CODEPAGE LIKE TCP00-CPCODEPAGE   .


  CALL FUNCTION 'NLS_GET_FRONTEND_CP'
    EXPORTING
      LANGU                 = SY-LANGU
    IMPORTING
      FRONTEND_CODEPAGE     = FRM_CODEPAGE
    EXCEPTIONS
      ILLEGAL_SYST_CODEPAGE = 1
      NO_FRONTEND_CP_FOUND  = 2
      INTERNAL_OR_DB_ERROR  = 3
      OTHERS                = 4.


  CALL FUNCTION 'SCP_REPLACE_STRANGE_CHARS'
    EXPORTING
      INTEXT            = P_STR
      INTER_CP          = FRM_CODEPAGE
      REPLACEMENT       = P_ASCILI
    IMPORTING
      OUTTEXT           = FRM_STR
    EXCEPTIONS
      INVALID_CODEPAGE  = 1
      CODEPAGE_MISMATCH = 2
      INTERNAL_ERROR    = 3
      CANNOT_CONVERT    = 4
      FIELDS_NOT_TYPE_C = 5
      OTHERS            = 6.


  P_STR = FRM_STR.

ENDFORM.                    "FRM_REPLACE_SPCIL_CHAR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值