Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^4: Tweak for my Perl Regex that screens for digits only

by hackermike (Novice)
on Jan 25, 2006 at 20:50 UTC ( [id://525570]=note: print w/replies, xml ) Need Help??


in reply to Re^3: Tweak for my Perl Regex that screens for digits only
in thread Tweak for my Perl Regex that screens for digits only

 /^(?:[-()\d\s]|[Ee]xt\.)*$/
matches a series of (any combination of) only hyphen, left-paren, right-paren, digits, whitespace, or Ext. or ext. Updated: added the hyphen. Note that a hyphen, if it appears in a character class, must be the first listed character (so that it doesn't look like part of a character range).

THANKS!
My seeking help with making the ext. permissible actually solved two problems, as ikegami pointed out, my poor effort was not even doing what I thought it would!

Now if there only some way for perl to limit the number of characters in a text field, (not a text area and not the phone field)so they can't enter whole paragraphs in the title field............
Mike

Replies are listed 'Best First'.
Re^5: Tweak for my Perl Regex that screens for digits only
by Roy Johnson (Monsignor) on Jan 25, 2006 at 20:57 UTC
    You can truncate a string variable to whatever length you like by using substr.
    substr($text_field, 100) = '' if length($text_field) > 100;
    will truncate $text_field to 100 chars. Or you could have your program just abort if it received an oversized field.

    Caution: Contents may have been coded under pressure.
      Aborting with a not so subtle err msg would be the way to go.
      Point would be that legit users prob would follow directions, (well, fairly well) and the more time spammers have to waste reading and responding to windy err msg's the better!
      I've not used substr, how can it be written to generate an err msg if the length exceeds X chars?
      Thx, Mike
        You wouldn't use substr to generate an err msg. You'd check length of whatever variable shouldn't be too long, and if it exceeded your limit, you'd have the program die or just not call the code that inserts the information into your data store, and generate a page that informs the user that the data they entered was rejected.
        if (length($var) > 30) { # Generate rejection message } else { # Insert data # Generate success message }

        Caution: Contents may have been coded under pressure.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://525570]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2024-04-19 10:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found