java - javafx 或 fxml 中有什么方法可以验证 TextField 字符的长度吗?
问题描述
不接受除数字 [0-9] 以外的任何字符及其长度的文本字段,在我的情况下为 11,但在正则表达式中添加 {11} 后,文本字段不接受任何内容。请帮忙!
代码在这里:
public class NumberField extends JFXTextField {
@Override
public void replaceText(int i, int i1, String string){
if (string.matches("[0-9]{11}") || string.isEmpty()) //{11} is length of number
super.replaceText(i , i1 , string);
}
解决方案
public class ContactField extends JFXTextField {
/*
*
* i is current length / value
* i1 is previous length / value
* string is value / char i-e currently keytyped
*
* Here:
*
* string.matches[0-9], it matches single current key typed value to the regex expression(one at a time)
* string.empty() is used for backspace key
*/
@Override
public void replaceText(int i, int i1, String string) {
if ((string.matches("[0-9]") || string.isEmpty()) && i <= 10) //for validating numbers length start from 0;
super.replaceText(i, i1, string);
}
/*
* It maintains prev and current values when selected char( by arrows keys like from middle) is deleted;
*
*/
@Override
public void replaceSelection(String replacement) {
super.replaceSelection(replacement);
}
}
推荐阅读
- docker - 如何在容器中运行我的本地应用程序
- spring-boot - 无法获得表锁 - 另一个 Flyway 实例可能正在运行
- ios - UI/UX 与 UIViewPropertyAnimator 交互的自定义 UIView 动画
- android - 为什么 Robolectric 4.4 会破坏我的 MockK 测试
- python - 'BatchNormalization' 未定义
- python - Python URLencode问题
- c# - 控制台不处理转义序列
- java - Android studio 条码读取
- amazon-web-services - 为 AWS Systems Manager 设置 SSL 以与 EC2 一起使用
- windows - 批量查找和替换括号之间的文本