Preface
Simple, such as containing only numbers or letters, etc., can be realized by the expression CA or CO;
regular expression matching can be realized by the keywords find, match or count.
List
currently only one
Features | expression | Remarks |
---|---|---|
invalid symbol | [^[:print:]] |
Characters not supported by the SAP system |
Chinese | [u4E00-u9FA5] |
Chinese characters and symbols |
Sample code
constants:
" lc_chinese_regex type string value '[^u4E00-u9FA5]+$', "匹配汉字及符号
lc_em_char type string value '()、。、,、’', "全角正则表达式
lc_lower_case type string value 'qwertyuiopasdfghjklzxcvbnm' ##NO_TEXT,
lc_common_regex type string value '[0-9A-Z、-]'
" lc_em_regex type string value '[()、。、,、’]'
. "全角符号
"汉字和半角前台显示两个字符,字母和半角显示为1个字符
"汉字只能和全角字符组合,英文只能和半角字符组合
"因此,通过计算字符长度和显示长度的余数,即可判断是否合法
data(lv_name_display_length) = cl_abap_list_utilities=>dynamic_output_length( <fs_bp_basic>-zzbpnm ).
data(lv_name_char_strlen) = strlen( <fs_bp_basic>-zzbpnm ).
"计算通用字符长度(在中英文名称中均可能出现)
data(lv_common_length) = count( val = <fs_bp_basic>-zzbpnm regex = lc_common_regex ).
"减去通用字段长度后,计算余数
data(lv_div) = ( lv_name_display_length - lv_common_length ) mod ( lv_name_char_strlen - lv_common_length ).
if lv_div ne 0.
message e041 into data(lv_zmdg_041).
lv_error_message = lv_error_message && '/' && lv_zmdg_041.
endif.