[EMAIL PROTECTED] wrote:
iam validating mobile number using the regex Expression
But even though iam giving a valid number,
its showing invalid number message
<field-validator type="fieldexpression">
<param name="expression">
(cityLedger.contactDetails.mobileNumber.matches('^(\?([0-9]{3})?([0-9]{4}|[0-9]{4})$'))
</param>
<message key="errors.phone"/>
</field-validator>
</field>
Ginu
You didn't specify what a mobile phone number *should* look like in
India, but some things that look odd right off:
1) Single quotes around the regex; I'm not sure if that's valid syntax
for the fieldexpression validator. Try using double quotes instead, as
in standard Java syntax.
2) Your regex starts '^(\?(...' which, according to Java String literal
syntax rules is equivalent to '^(?(...' which is not a legal construct.
If you really want to require a literal '?' as the first character in a
phone number (which seems odd), you would need to write '^(\\?(...'
3) The remainder of the regex says the input may optionally contain
three digits, followed by either four digits or... four digits. The two
alternatives in that final group are identical -- '(X|X)'
Due to (1) I don't think that regex can even be compiled, so it would
always fail regardless of the input, unless the JVM is being lax and
treating the '?' as a litteral character. If that's the case then, due
to (2), this regex will only match input of the form '?####' or
'?#######', i.e. a question mark followed by either three or seven
digits, without any spaces.
Depending on what exactly you consider valid inut, this might be more
appropriate:
...matches("^(\d{3} )?\d{4} \d{4}$")
to match either '### #### ####' or '#### ####'.
L.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]