java - 如何只接受来自 JTextField 的指定模式?
问题描述
我只想JTextField
接受我指定的模式。“12ABCDE1234A1A1”
注意-该模式可以有任何数字和字母。
JTextField t17 = new JTextField();
final String match ="(\\d\\d)-([a-zA-z]{5})-(\\d\\d\\d\\d)-([a-zA-z]{1})-
(\\d)-([a-zA-z]{1})-(\\d)+$";
Pattern pt = Pattern.compile(match);
final Matcher mt =pt.matcher(t17.getText());
t17.addFocusListener(new FocusAdapter() {
@Override
public void focusLost(FocusEvent arg0) {
if(mt.matches()){
lblPin.setText("verified");
}else{
JOptionPane op = new JOptionPane();
op.showMessageDialog(iff, "INVALID GST NUMBER");
}
}
});
解决方案
将 tekst 输入到您的 之后JTextField
,根据此模式验证它的文本:
^\\d{2}[A-Z]{5}\\d{4}([A-Z]\\d){2}$
并调用t17.getText()
内部FocusAdapter
方法,因此您将获得当前输入的文本。
您可以在 Java 代码中尝试:
public class JavaFiddle
{
public static void main(String[] args)
{
java.util.regex.Pattern pt = java.util.regex.Pattern.compile("^\\d{2}[A-Z]{5}\\d{4}([A-Z]\\d){2}$");
java.util.regex.Matcher mt = pt.matcher("12ABCDE1234A1A1");
if(mt.matches()){
System.out.println("success");
}else{
System.out.println("failuire");
}
}
}
推荐阅读
- solr - 在最近的 solr-jetty 更新后,如何让 Solr 和 CKAN 在 Ubuntu 18.04 上运行?
- javascript - 如何将 javascript 函数发布到 html 输入字段中
- java - 如何将事件从一个链表移动到另一个链表
- r - 在 facet_grid 中垂直居中多行、部分斜体的条形标签
- reactjs - ReactJs 类桌面组件库示例
- sql - BigQuery 将列表连接成带引号的字符串
- windows - 如何从 Windows 主机连接到 Linux docker 容器的暴露端口
- c# - 如何将 Unity AudioClip 转换为适合 Firebase 存储上传的字节数组
- asp.net-mvc - 如何在视图中显示用户角色?
- laravel - 如果找不到项目,如何使变量为空?