Estoy tratando de crear un validador angular que me permita validar una cadena de letras y caracteres de longitud 6-12 inclusive, pero no de longitud 9.
Yo he tratado
RegexAlphaNumeric = "^[a-zA-Z0-9]{6,8}|[a-zA-Z0-9]{10,12}$"; userId: ['', [Validators.minLength(6), Validators.maxLength(12),Validators.pattern(this.RegexAlphaNumeric)],],Me pregunto si mi uso de minLength y maxLength no debería usarse aquí y si hay una manera de utilizar Validators.pattern() para este método.
Puede usar una búsqueda anticipada negativa para afirmar no 9 caracteres:
^(?![a-zA-Z0-9]{9}$)[a-zA-Z0-9]{6,12}$Vea una demostración de regex101 .
O use una alternancia como ya tiene en su pregunta, pero debe agrupar las partes entre el inicio y el final de la cadena o, de lo contrario, el patrón coincidiría con 6-8 caracteres desde el principio o 10-12 caracteres al final solamente.
^(?:[a-zA-Z0-9]{6,8}|[a-zA-Z0-9]{10,12})$Vea una demostración de regex101 .