2009 Jul 14 7:52 AM
Hi,
I need to validate a User Entry on screen field against a format XXX-XX-XXXX or XX-XXXXXXX where X is a numeric value.
How can I check for the position of hyphens in the user entry to match with the permissible format?
Can I use the any of the classes, cl_abap_regex or cl_abap_matcher to do the above-said validation?
Please advise.
Thanks,
Binu
2009 Jul 14 8:02 AM
Hi,
You can split your data at '-' into an internal table.
Then determine the length of the text before and after the '-' statement to find the position of the '-'.
On the basis of this you can validate your text.
Regards,
Ankur Parab
2009 Jul 14 8:13 AM
Hi Binu
If you want to check manually then i have written the logic for XXX-XX-XXXX
DATA: VAR(11) TYPE C.
DATA: VAR_I TYPE I.
VAR_I = STRLEN( VAR ).
IF VAR_I NE 11.
***error message
ELSE.
IF VAR(1) EQ 1 OR VAR(1) EQ 2 OR VAR(1) EQ 3 OR VAR(1) EQ 4 OR VAR(1) EQ 5 OR VAR(1) EQ 6 OR VAR(1) EQ 7 OR VAR(1) EQ 8 OR VAR(1) EQ 9 OR VAR(1) EQ 0.
IF VAR(2) EQ 1 OR VAR(2) EQ 2 OR VAR(2) EQ 3 OR VAR(2) EQ 4 OR VAR(2) EQ 5 OR VAR(2) EQ 6 OR VAR(2) EQ 7 OR VAR(2) EQ 8 OR VAR(2) EQ 9 OR VAR(2) EQ 0.
IF VAR(3) EQ 1 OR VAR(3) EQ 2 OR VAR(3) EQ 3 OR VAR(3) EQ 4 OR VAR(3) EQ 5 OR VAR(3) EQ 6 OR VAR(3) EQ 7 OR VAR(3) EQ 8 OR VAR(3) EQ 9 OR VAR(3) EQ 0.
IF VAR(4) EQ '-'.
IF VAR(5) EQ 1 OR VAR(5) EQ 2 OR VAR(5) EQ 3 OR VAR(5) EQ 4 OR VAR(5) EQ 5 OR VAR(5) EQ 6 OR VAR(5) EQ 7 OR VAR(5) EQ 8 OR VAR(5) EQ 9 OR VAR(5) EQ 0.
IF VAR(6) EQ 1 OR VAR(6) EQ 2 OR VAR(6) EQ 3 OR VAR(6) EQ 4 OR VAR(6) EQ 5 OR VAR(6) EQ 6 OR VAR(6) EQ 7 OR VAR(6) EQ 8 OR VAR(6) EQ 9 OR VAR(6) EQ 0.
IF VAR(7) EQ '-'.
IF VAR(8) EQ 1 OR VAR(8) EQ 2 OR VAR(8) EQ 3 OR VAR(8) EQ 4 OR VAR(8) EQ 5 OR VAR(8) EQ 6 OR VAR(8) EQ 7 OR VAR(8) EQ 8 OR VAR(8) EQ 9 OR VAR(8) EQ 0.
IF VAR(9) EQ 1 OR VAR(9) EQ 2 OR VAR(9) EQ 3 OR VAR(9) EQ 4 OR VAR(9) EQ 5 OR VAR(9) EQ 6 OR VAR(9) EQ 7 OR VAR(9) EQ 8 OR VAR(9) EQ 9 OR VAR(9) EQ 0.
IF VAR(10) EQ 1 OR VAR(10) EQ 2 OR VAR(10) EQ 3 OR VAR(10) EQ 4 OR VAR(10) EQ 5 OR VAR(10) EQ 6 OR VAR(10) EQ 7 OR VAR(10) EQ 8 OR VAR(10) EQ 9 OR VAR(10) EQ 0.
IF VAR(11) EQ 1 OR VAR(11) EQ 2 OR VAR(11) EQ 3 OR VAR(11) EQ 4 OR VAR(11) EQ 5 OR VAR(11) EQ 6 OR VAR(11) EQ 7 OR VAR(11) EQ 8 OR VAR(11) EQ 9 OR VAR(11) EQ 0.
ELSE.
***error message
ENDIF.
ELSE.
***error message
ENDIF.
ELSE.
***error message
ENDIF.
ELSE.
***error message
ENDIF.
ELSE.
***error message
ENDIF.
ELSE.
***error message
ENDIF.
ELSE.
***error message
ENDIF.
ELSE.
***error message
ENDIF.
ELSE.
***error message
ENDIF.
ELSE.
***error message
ENDIF.
ELSE.
***error message
ENDIF.
ENDIF.
Regards
Sajid
2009 Jul 14 9:12 AM
Hi All,
I am looking for ways to use the classes, cl_abap_matcher or cl_abap_regex for this requirement.
Thanks,
Binu