× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Jeffrey Lee wrote:
I was wondering how I could strip any non numberic characters from a set of 
numbers submitted via a html form. For example (504) 555-5555 would be 
5045555555 or 504-555-5555 would be 5045555555   Like %trim does with spaces is 
there something to deal with non-numberics?
--

If you were programming in Python, you could do this with the simple expression (''.join([c for c in source if c.isdigit()])). ;-)


But since this is an RPG list, you probably want an RPG answer, right?

Others have suggested using some combination of the built-in functions %XLATE and %REPLACE. Personally, I thinks that's overkill. I'd recommend the obvious approach of simply looping over the source string selecting the digits out of the string (just like what the above Python expression does):

------------------------------------------------------------------
D i               s             10i 0
D source          s             50a   varying
D target          s             50a   varying
 /free
    source = 'jafgjh934hdfg94k3ghsd0jdfg0345jdfg';
    target = '';

    // Extract digits out of source string
    for i = 1 to %len(source);
       if '0' <= %subst(source:i:1) and %subst(source:i:1) <= '9';
          target += %subst(source:i:1);
       endif;
    endfor;

    // Display results
    dsply source;
    dsply target;
    *inlr = *on;
 /end-free
------------------------------------------------------------------

Oh yeah, if you're not on V5R2, replace the middle statement of the loop with:

target = target + %subst(source:i:1);

Cheers! Hans


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.