Estoy tratando de completar una expresión regular donde:
Probé la siguiente expresión regular, funcionó bien para los primeros 2 puntos, todavía necesito lograr el tercer punto.
^(?=.{3,50}$)(?!.*(((\d{6}))|( {2})|(-{2})|(,{2})|(\.{2})|(\/{2})))([a-zA-Z0-9 \-,.\/])+$Estoy usando esta expresión regular para validar la dirección ingresada por el usuario, estaré encantado de modificarla si hay alguna mejora o sugerencia.
Time Square, Main Road, 2279 permitido
Time-Square, Main Road-2279 permitido
Time Square Main Road NO permite "espacios dobles"
Time Square, Main Road, 22798741313 NO permitido
Time Square, Main Road.. NO permitido
Time Square, Main Road// NO permitido
Time Square Main Road,, NO permitido
Time Square Main Road-- NO permitido
------- NO permitido
--// NO permitido
--/ NO permitido
ttttttttttttttttttttttttttt NO permitido
-/- NO permitido
-/- NO permitido
.,. No permitido
,-, NO permitido
/-/-/-/- NO permitido
Puede usar esta expresión regular con condiciones de anticipación negativas:
^(?!.* )(?!.*[-,/.]{2})(?!.*(?:[^\d\n]*\d){6})(?!.*([a-zA-Z])\1\1).{3,50}$Explicación:
^ : Inicio(?!.* ) : No permitir 2 espacios consecutivos(?!.*[-,/.]{2}) : No permitir la repetición de estos caracteres especiales(?!.*(?:[^\d\n]*\d){6}) : No permitir más de 5 dígitos(?!.*([a-zA-Z])\1\1) : No permitir 3 repeticiones consecutivas de la misma letra.{3,50} : Partido 3 a 50 de cualquier carácter$ : Fin