Estoy tratando de obtener el número de tarjeta de crédito del cliente con MaskedInput y necesito eliminar espacios antes de usarlo en el servicio de llamadas, pero aunque en realidad no cambio el valor del evento cada vez que el cliente intenta eliminarlo, no pueden porque en espacios de valor no existe Solo quiero obtener valor sin espacio y establecerlo en el estado. ¿Cómo puedo hacer eso?
<MaskedInput inputMode="numeric" type="text" onChange={(e) => this.checkCC(e)} mask={[/\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/, ' ', /\d/, /\d/, /\d/, /\d/]} required></MaskedInput> checkCC(e) { this.setState({ creditCard: event.target.value.replaceAll(" ", "") }); }Creo que tu máscara es incorrecta. Prueba algo como esto
mask={[ { length: 4, regexp: /^[0-9]{4}$/, placeholder: "xxxx" }, { fixed: " " }, { length: 4, regexp: /^[0-9]{4}$/, placeholder: "xxxx" }, { fixed: " " }, { length: 4, regexp: /^[0-9]{4}$/, placeholder: "xxxx" }, { fixed: " "}, { length: 4, regexp: /^[0-9]{4}$/, placeholder: "xxxx" } ]}Puedes usar la función trim() :
this.setState({ creditCard: event.target.value.trim() });