[thelist] ASP - Regular Expressions (Correction)
Frank
lists at frankmarion.com
Tue Aug 5 12:01:33 CDT 2003
At 03:20 AM 2003-08-05 -0400, you wrote:
>I don't want the user to be able to input '--text' or 'text--' but able to
>input 'te-xt'.
>
>At the moment this is working properly for everything but 'text--'. It
>still allows the user to do this. I don't really know why except that it
>relates to the $ sign, because I first read about regular expressions today.
Oop! Screw'd up! Correction
The following will accept any alpha-numeric (or dashes) that is not
preceded or followed by one or more dashes. If there is not one or more
matches, it will fail-- test failed.
^([^-]+[a-zA-Z0-9-]+[^-]+)+$
^ line start
[1] repeat at least 1 time
(
[^-]+ One or more of any character that is not a dash
[a-zA-Z0-9-] + One or more of upper or lower case alpha-num or dash
[^-]+ One or more of any character that is not a dash
)+
[/1]
$ line end
The following will successfully match
te-xt
te--xt
text
And it will fail any of these
--text
-- text (no space in specified in the second sub-expression [a-zA-Z0-9-] + )
text--
-- text
To force only a single dash in the center of a word use [a-zA-Z0-9-] with no +
Because this is all grouped with parentheses, the whole expression is
treated as one. If you were to remove the parentheses, each [subexpression]
would be treated as a single character, thus the text would be for three
sequential characters.
--
Frank Marion lists at frankmarion.com Keep the signal high.
More information about the thelist
mailing list