zoukankan      html  css  js  c++  java
  • ABAP中如何检查字母数字类型(alpha numeric)的变量

    Business requirment经常要求某个ID的值只能包含26个字母和10个数字字符,这就要求ABAP程序能够检查相应变量内容,辨别特殊字符。sap-img上的一个例子提供了这样的功能:

    REPORT ZCHECK_ALPHA_NUMERIC.

    * Declare the variable

    * For Length
    data: serial_length type i.

    * For Alpha numeric
    data: str type string.
    data: valid_characters type string.

    * Fill in those valid characters you need to check
    concatenate ‘0123456789′ ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ’
    ‘abcdefghijklmnopqrstuvwxyz’ into valid_characters.

    * User Input
    parameters testchar(10) default ‘12345abc’.

    * Get User Input
    str = testchar.

    * The Checks
    if str co valid_characters.
    write: / str, ‘Characters are OK’.
    else.
    write: / str, ‘Characters are NOT OK’.
    endif.

    *– End Program

    基于同样的原理,下面这个subroutine可以去掉一个字符串中的所有特殊字符

    *&———————————————————————*
    *&      Form  convert_character_entities
    *&———————————————————————*
    *  This form removes all non-alpha-numeric characters from a string
    *———————————————————————-*
    *      <–
    *———————————————————————-*

    FORM remove_non_alpha_numeric_char.
    DATA: l_teststr       TYPE string,
    l_alpha_numeric TYPE string.
    DATA: l_strlen TYPE i.

    DATA: l_char TYPE c.

    l_teststr = ‘ref0 0@2$45*8′.
    l_strlen = strlen( l_teststr ).
    WRITE: / l_teststr, ‘length:’, l_strlen.

    l_alpha_numeric = ‘0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’.

    WHILE l_strlen <> 0.
    l_strlen = l_strlen – 1.
    l_char = l_teststr+l_strlen(1).
    IF l_alpha_numeric NA l_char.
    REPLACE SECTION OFFSET l_strlen LENGTH 1 OF l_teststr WITH ”.
    ENDIF.
    ENDWHILE.
    l_strlen = strlen( l_teststr ).
    WRITE: / l_teststr, ‘length:’, l_strlen.

    ENDFORM.

  • 相关阅读:
    第二次结对编程作业
    第5组 团队展示
    第一次结对编程作业
    BETA 版冲刺前准备(团队)
    项目测评(团队)
    1111111111
    Alpha 事后诸葛亮
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
  • 原文地址:https://www.cnblogs.com/levin/p/1537869.html
Copyright © 2011-2022 走看看