본문 바로가기
ERP-SAP/ABAP

(abap) 문자속 특수문자 찾기 숫자속 문자 찾기 find character in string or in number

by 행복한워니의 기록 2018. 3. 15.
728x90
반응형
1. 숫자만 포함된 것을 체크할때

data :  lv_str type string value '1234.12'. "점 찍혀있으니 에러 내야함
 co는 contain only  즉 아래는 숫자만
허락한다는 뜻.
if lv_str co '0123456789'.
 write : 'ok'.
else.
 write : 'error'. 에러날꺼임..
endif.

2. 적어도 1개의 알파벳 or  숫자를 포함한 것을 체크할 때 CA  활용

if lv_str ca sy-abcde. "abcde... 등의 문자가 1개라도 포함되면!!!
 write : ok.
else.
 에러
endif.
 
3. 이 모든걸 아우를 수 있는 펑션 존재

I_valid의 경우
내가 포함하고 싶은 특수문자들을
넣어주면 된다.
가령 I_valid = '₩+×÷='.
로 넣어주면 저 특수문자들은 허락해준다.
1. For Finding Special char ina srting 

CALL FUNCTION 'HR_GB_XML_PATTERN_CHECK' ""Check string for special 
characters 
EXPORTING 
i_string = "" string Input value 
* i_valid = "" string Valid characters 
* i_alphabet_upper = 'X' "" char01 Include A-Z 
* i_alphabet_lower = 'X' "" char01 Include a-z 
* i_digits = 'X' "" char01 Include 0-9 
* i_space_invalid = 'X' "" char01 Do not include space 
IMPORTING 
e_invalid = "" string Invalid characters 
e_errtxt = "" string Error message 
. "" HR_GB_XML_PATTERN_CHECK 
2. For checking Space in a string: 

DATA:input_str(10) TYPE c VALUE '123456 789', 
lv_count TYPE i. 
lv_count = STRLEN( input_str ). 
IF input_str CA space. 
IF sy-fdpos LT lv_count. 
write:/10 'there is a space in input'. 
else. 
write:/10 'there is no space in input'. 
endif. 
ENDIF. 
728x90
반응형