This is what I use
$LastName = stripslashes($_POST['LastName']);
preg_match("/^\w+[\s\-\'\.\w]*$/i", $LastName)

This is less strict than yours as I'm allowing whitespace, periods,
underscores, hyphens, apostrophes, and numbers because I don't so much care
if someone tacks on " Jr." or something like that to the end of their name.

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
Sent: Thursday, March 27, 2003 3:05 PM
To: Jennifer Goodie
Cc: John W. Holmes; 'John Nichel'; [EMAIL PROTECTED]
Subject: RE: [PHP] Form Validation: Surnames with Apostrophe



When I do that:

(preg_match("/^[a-z](\\')?[a-z-]+$/i",$_POST[Last_Name])

it won't allow O'Reilly
and seems to not allow anything at all

On Thu, 27 Mar 2003, Jennifer Goodie wrote:

> That is because it is not saying that is all that can be in the string.
The
> 'Re' matches that pattern.  Put a ^ at the beginning to signify it must
> start with the pattern and a $ at the end to signify it must end there.
>
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
> Sent: Thursday, March 27, 2003 1:19 PM
> To: John W. Holmes
> Cc: 'John Nichel'; [EMAIL PROTECTED]
> Subject: RE: [PHP] Form Validation: Surnames with Apostrophe
>
>
>
> I just tried your regexp:
>
> (preg_match("/[a-z](\\')?[a-z-]+/i",$_POST[Last_Name])
>
> and it allows the following:
>
> O' [EMAIL PROTECTED]
>
> It seems to allow any number of characters and spaces between the O' and
> Re
>
> On Wed, 12 Mar 2003, John W. Holmes wrote:
>
> > > > preg_match ( "/[A-Za-z-']+/", $_POST['Last_Name'] );
> > > >
> > > > [EMAIL PROTECTED] wrote:
> > > > > I have been trying to validate a form field Last_Name and have
> > been
> > > unable
> > > > > to find a regexp to account for the apostrophe (e.g., O'Reilly).
> > The
> > > > > following statement:
> > > > >
> > > > > preg_match('/^[[:alpha:]]+[-]?[[:alpha:]]+$/', $_POST[Last_Name])
> > > > >
> > > > > accepts hyphenated surnames and I have tried escaping the
> > apostrophe:
> > > > > [\\'] and [\\\'] to no avail. Any idea what I am doing wrong?
> > > that could work but the user may now submit one or more apostrophes
> > > as the Last Name.
> >
> > Watch out for magic_quotes. If "O'Reilly" is submitted, unless you
> > stripslash() it, you're validating against "O\'Relly".
> >
> > preg_match("/[a-z](\\')?[a-z-]+/i",$_POST['Last_Name'])
> >
> > ---John W. Holmes...
> >
> > PHP Architect - A monthly magazine for PHP Professionals. Get your copy
> > today. http://www.phparch.com/
> >
> >
> >
>
>


--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to