Hi davis,
I'm using the following regex to match addresses in the format of 123
west road
public static final String ADDRESS_REGEX =
"[0-9]+\\s*\\D+";
and it works fine on IE too. Note the double slash before s and D
So I don't think that the double slash is the problem.
HTH
Dominik
davis schrieb:
> I think I figured out the problem, using an online regex tester for
> JavaScript: http://www.pagecolumn.com/tool/regtest.htm
>
> Note that the regex translation in JavaScript has a double backslash
> to escape the \d special character. This fails standard regex test
> for JavaScript for inputs like abcd1234.
>
> ^(?=.*\\d)(?=.*[a-z]).{8,15}$
>
> If you replace the regex text with:
>
> ^(?=.*\d)(?=.*[a-z]).{8,15}$
>
> Then it works for JavaScript. However, Java requires the character to
> be escaped. I'm guessing Firefox simply interprets \\d as \d, which
> is why it passes, but IE is not as forgiving. This seems like a bug
> in the GWT compiler. It seems to me it should take the \\d and
> translate it to \d when compiling from Java to JavaScript.
>
> Can someone confirm?
>
> Regards,
> Davis
>
> On Aug 14, 9:44 am, davis <[email protected]> wrote:
> > Hi, I have the following Java code to validate a password box.
> > Basically it checks that the password can't be null, is between 8-15
> > characters, and must contain both numbers and letters.
> >
> > public static boolean validatePassword(PasswordTextBox box, Label
> > errorLabel) {
> > String text = box.getText();
> > if(text.isEmpty()) {
> > ValidatorUtil.onFailure(box,
> > custom.passwordMayNotBeNull(),
> > errorLabel);
> > return false;
> > } if(text.length() < 8 || text.length() > 15) {
> > ValidatorUtil.onFailure(box,
> > custom.passwordHasInvalidLength(8, 15,
> > text.length()), errorLabel);
> > return false;
> > } if(!text.matches(CustomMessages.REGEX_PASSWORD)) {
> > ValidatorUtil.onFailure(box,
> > custom.passwordHasInvalidFormat(),
> > errorLabel);
> > return false;
> > }
> > return true;
> > }
> >
> > This works fine in Firefox, but it does not work in IE. The
> > JavaScript compiles down to this for IE8:
> >
> > function validatePassword(box, errorLabel){
> > var text, matchObj;
> > text = $getPropertyString(box.element, 'value');
> > if (!text.length) {
> > setStyleName(box.element, 'validationFailedBorder', true);
> > ($clinit_114() , errorLabel.element).innerText = 'You must provide
> > a password.';
> > return false;
> > }
> > if (text.length < 8 || text.length > 15) {
> > onFailure_1(box, 'Sorry, your password must be between 8 and 15
> > characters long (you have ' + text.length + ' characters).',
> > errorLabel);
> > return false;
> > }
> > if (!(matchObj = (new RegExp('^(?=.*\\d)(?=.*[a-z]).{8,15}$')).exec
> > (text) , matchObj == null?false:text == matchObj[0])) {
> > setStyleName(box.element, 'validationFailedBorder', true);
> > ($clinit_114() , errorLabel.element).innerText = 'Sorry, your
> > password must contain both letters [a-z] and numbers [0-9].';
> > return false;
> > }
> > return true;
> >
> > }
> >
> > The behavior is a bit odd. It passes the text.length checks, but then
> > fails the regex expression (which also has length checks with {8,15}.
> > It always prints: 'Sorry, your password must contain both letters [a-
> > z] and numbers [0-9].' in IE, but in Firefox, it works fine...for
> > inputs like this:
> >
> > abcd1234 <- valid password, 8 characters with letters and numbers
> >
> > Even more strange is the fact that if I enter a password with 12
> > characters with both letters and numbers, IE passes, like this:
> >
> > abcd1234abcd
> >
> > But if I enter only 11 characters, it fails:
> >
> > abcd1234abc
> >
> > Any clues on what is wrong here?
> >
> > Regards,
> > Davis
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/Google-Web-Toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---