En mi aplicación React Native, estoy usando el componente <Input> de Native Base que se basa en el componente estándar <TextInput> . Quiero hacer cumplir una longitud máxima de 5 dígitos, independientemente de si hay un punto decimal. Entonces, si el usuario solo escribe 1, el máximo sería 11111 o 111.11 . El problema es que, dado que la entrada es una cadena, considera que el punto decimal es un carácter, por lo que me detiene después de 111.1 .
¿Cómo puedo conseguir esto?
Puede crear una función que transforme su número en una cadena, elimine el punto y mida la longitud, luego llame a esta función desde su onChangeText:
let nrs = [11111, 1111.1, 111.11, 111111, 111.111] function checkIfLessThenFiveDigits (nr){ let str = nr.toString() // eg "11111", "111.11", "111111" let woPoint = str.replace('.', '') // eg "11111", "11111", "111111" let isValid = woPoint.length <= 5 return isValid } for (var i of nrs) console.log(i + ' is ' + checkIfLessThenFiveDigits(i)) // onChangeText={checkIfLessThenFiveDigits}