Estoy usando la siguiente expresión regular para validar un número de teléfono indio.
Quiero +88 opcional o 01 antes de 11 dígitos de teléfono.
Esto es lo que estoy usando:
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); }¿Cómo puedo hacerlo?
ACTUALIZAR
Si escribo el número de móvil. anterior a 01 , para más de 11 dígitos, notifica mgs(Not valid mobile no.!) . Bueno, lo usé, falla cuando tiene 13 dígitos. Altera los mgs de validación de forma incorrecta.
Aquí está mi código:
<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>Puede usar cualquiera de las soluciones dadas para validar el número de teléfono móvil de Bangladesh.
expresión regular 1:
/(^(\+88|0088)?(01){1}[3456789]{1}(\d){8})$/expresión regular 2
/(^(\+8801|8801|01|008801))[1|3-9]{1}(\d){8}$/expresión regular 3
(^([+]{1}[8]{2}|0088)?(01){1}[3-9]{1}\d{8})$Ejemplo de número de móvil permitido
+8801812598624
008801812598624
01812598624
01712598624
01672598624
01919598624
01419598624
01319598624
etc.
Veo que lo has intentado pero tu expresión regular no es precisa.
$ (por lo tanto, incluso "abc" al final no evitará que IsMatch devuelva true )01 entre corchetes, creando así una clase de carácter, lo que significa 0 o 1 .^(?:\+?88|0088)?01[15-9]\d{8}$ respuesta. Para crear una expresión regular que valide una cadena que tenga " opcional +88 , 0088 o 01 precediendo 11 dígitos ", necesita algo como:
@"^(?:(?:\+|00)88|01)?\d{11}$"Vea la demostración de RegexStorm
ACTUALIZAR
Si desea validar números de teléfono de Bangladesh con esta expresión regular, nada cambia en el patrón (solo \r? es totalmente redundante), pero si planea permitir 13 u 11 dígitos después de +88 o 01 , debe usar una alternancia:
ng-pattern="/^(?:(?:\+|00)88|01)?\d{11}$/"Ver demostración
En Angular:
Validators.pattern('(?:(?:\\+|00)88|01)?\\d{11}') // or Validators.pattern(/^(?:(?:\+|00)88|01)?\d{11}$/)Puede encontrar una mejor respuesta aquí: Valide el número de móvil usando una expresión regular
Hay dos buenas respuestas en esta publicación. Resumen de ellos
Debería ser bastante simple:
^(?:\+?88|0088)?01[15-9]\d{8}$^ - Desde el inicio de la cadena(?:\+?88|0088)? - opcional 88 , que puede comenzar en + u opcional 008801 - obligatorio 01[15-9] - "1 o 5 o 6 o 7 o 8 o 9"\d{8} - 8 dígitos$ - final de la cadenaEjemplo de trabajo: http://rubular.com/r/BvnSXDOYF8
Descargue esta biblioteca gratuita libphonenumber de Google . Está disponible para Java, C++ y Javascript, pero también hay bifurcaciones para PHP y, creo, para otros lenguajes.
+880 me dice que es el código de país de Bangladesh . Intentemos validar números de ejemplo con el siguiente código en Java:
String bdNumberStr = "8801711419556"; PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); try { //BD is default country code for Bangladesh (used for number without 880 at the begginning) PhoneNumber bdNumberProto = phoneUtil.parse(bdNumberStr, "BD"); } catch (NumberParseException e) { System.err.println("NumberParseException was thrown: " + e.toString()); } boolean isValid = phoneUtil.isValidNumber(bdNumberProto); // returns trueEse código también manejará números con espacios (por ejemplo, "880 17 11 41 95 56"), o incluso con 00880 al principio (+ a veces se reemplaza con 00).