I require certain constraints in my project, particularly within the regex, to restrict user input and format it appropriately. These rules are intended for implementation within the TextField component in my Jetpack Compose project.
Rules:
Examples: (These examples are provided for reference purposes only.)
I tried belwo code but this is not working as expected.
var text by remember { mutableStateOf("") }
val regex = remember { Regex("^(?!0|\\.)(?!.*\\.\\.)\\d{1,4}(\\.\\d{1,2})?$") }
TextField(
label = R.string.label_days,
value = text,
keyboardOptions = KeyboardOptions(
keyboardType = KeyboardType.Number
),
onValueChange = { days ->
if (days.isEmpty() || regex.matches(days)){
text = days
}
})
Below code will work for your requirement
var text by remember { mutableStateOf("") }
val regex = remember { Regex("^(?!0)(?!.*\\.\\..*|\\.$)\\d{0,4}(\\.\\d{0,2})?\$") }
TextField(
label = {
Text(text = "Days")
},
value = text,
keyboardOptions = KeyboardOptions(
keyboardType = KeyboardType.Number
),
onValueChange = { days ->
if (days.isEmpty() || days.matches(regex)) {
text = days
}
}
)