I have no idea about this control-Z thing, you might want to try it with UTF
(just add the 'u' modificator):
$str = preg_replace("#[^a-zA-Z0-9]+#uis", "", $str);

Or try this:
$str = preg_replace("#(\b[^a-zA-Z0-9]\b?)+#uis", "", $str);

I may be wrong about the second one but it might work...

On Thu, Mar 26, 2009 at 10:51 PM, <jesse.ha...@arvatousa.com> wrote:

>  Nitsan,
>
>
>
> Thank you very much for the input. However, I just gave this a try and it
> still did not strip the control-Z. Therefore, it is still hitting my loop
> later and looping infinitely. I am sure I could mend that by working
> something into that loop, but there are several loops I would need to do
> this on. If I can stop the command at this method, then the entire script
> will run perfectly.
>
>
>
>
>
>
>
>
>
> Thanks,
>
>
>
> Jesse Hazen
>
> _________________
>
> arvato digital services llc
>
> A Bertelsmann Company
>
> 29011 Commerce Center Dr.
>
> Valencia, CA 91355
>
>
>
> http://arvatodigitalservices.com
>
>
>
> jesse.ha...@arvatousa.com
>
> Tel. +1 (661) 702-2727
>
> Fax. +1 (661) 775-6478
>   ------------------------------
>
> *From:* nit...@binnun.co.il [mailto:nit...@binnun.co.il] *On Behalf Of *Nitsan
> Bin-Nun
> *Sent:* Thursday, March 26, 2009 1:44 PM
> *To:* Hazen, Jesse, arvato digital services llc
> *Cc:* php-general@lists.php.net
> *Subject:* Re: [PHP] Regex
>
>
>
> To filter out everything which is not A-Z, a-z and 0-9 try this regex:
>
> $str = preg_replace("#[^a-zA-Z0-9]+#is", "", $str);
>
> On Thu, Mar 26, 2009 at 10:23 PM, <jesse.ha...@arvatousa.com> wrote:
>
> Hi,
>
>
>
> Brand new to regex. So I have a cli which runs a regex on users input,
> to make sure that only 0-9 and A-Z are accepted. It should strip
> everything else. My problem is that when you press control-Z (on
> Windows; I have not yet tested this on linux, and I will, but I would
> like this to be compatible with both OS's) it loops infinitely saying
> invalid data (because of the next method call, which decides what to do
> based on your input). So, here is the input code. Is there a way I can
> ensure that control commands are stripped, here?
>
>
>
>
>
>
>
>
>
>
>
>            public function getSelection() {
>
>
>
>                        $choice =
> $this->validateChoice(trim(strtoupper(fgets(STDIN))));
>
>                        return $choice;
>
>
>
>            }
>
>
>
>            private function validateChoice($choice) {
>
>
>
>                        $choice =
> ereg_replace("/[^0-9A-Z]/","",$choice);
>
>                        return $choice;
>
>
>
>            }
>
>
>
>
>
>
>
> I have tried a ton of different things to try and fix this. Tried
> /\c.|[^0-9A-Z]/, and many variations of \c and the [^0-9A-Z], to no
> avail. I also tried using both preg_replace() as well as ereg_replace().
> I spent a lot of time on the regex section of the PHP manual, but I am
> not finding anything. Any advise on how to accomplish this?
>
>
>
>
>
>
>
> Thanks,
>
>
>
> Jesse Hazen
>
>
>

Reply via email to