I am using the following regular expression to validate an Indian phone number.
I want optional +88 or 01 before 11 digits of phone.
Here is what I am using:
string mobileNumber = "+8801000000000";
if (new Regex(@"^([01]|\+88)?\d{11}").IsMatch(mobileNumber)){
MessageBox.Show("Mobile number is valide", "All information is required", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else{
MessageBox.Show("Mobile number is not valide", "All information is required", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
How can I do it?
UPDATE
If I write mobile no. preceding 01
, for more than 11 digit it notify validation mgs(Not valid mobile no.!)
. Well I used, it fails when 13 digit. It alters validation mgs wrongly.
Here is my code:
<input type="text" placeholder="Enter bKash wallet number"
class="form-control" ng-model="BkashWalletNo" ng-disabled="AutoConfirmed"
name="BkashWalletNo" ng-pattern="/^(?:\+88|01)?\d{11}\r?$/" />
<p class="help-block" ng-show="form.BkashWalletNo.$error.pattern">Not valid mobile no.!</p>
You may use any one of given solution to validate Bangladeshi mobile number.
regular expression 1:
/(^(\+88|0088)?(01){1}[3456789]{1}(\d){8})$/
regular expression 2
/(^(\+8801|8801|01|008801))[1|3-9]{1}(\d){8}$/
regular expression 3
(^([+]{1}[8]{2}|0088)?(01){1}[3-9]{1}\d{8})$
Allowed mobile number sample
+8801812598624
008801812598624
01812598624
01712598624
01672598624
01919598624
01419598624
01319598624
etc
I see you have tried but your regex is not accurate.
$
anchor (thus, even "abc" at the end will not prevent the IsMatch
from returning true
)01
inside square brackets thus creating a character class, meaning either 0
or 1
.^(?:\+?88|0088)?01[15-9]\d{8}$
answer.In order to create a regex that will validate a string that has "optional +88
, 0088
or 01
preceeding 11 digits", you need something like:
@"^(?:(?:\+|00)88|01)?\d{11}$"
See RegexStorm demo
UPDATE
If you want to validate Bangladeshi phone numbers with this regex, nothing changes in the pattern (only \r?
is totally redundant), but if you plan to allow 13 or 11 digits after +88
or 01
, you need to use an alternation:
ng-pattern="/^(?:(?:\+|00)88|01)?\d{11}$/"
See demo
In Angular:
Validators.pattern('(?:(?:\\+|00)88|01)?\\d{11}')
// or
Validators.pattern(/^(?:(?:\+|00)88|01)?\d{11}$/)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With