gpt4 book ai didi

java - 如何仅接受 JTextField 中的指定模式?

转载 作者:太空宇宙 更新时间:2023-11-04 10:16:37 24 4
gpt4 key购买 nike

我想要一个 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}$

并在 FocusAdapter 方法中调用 t17.getText(),这样您就可以获得当前输入的文本。

您可以在 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");
}
}
}

关于java - 如何仅接受 JTextField 中的指定模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51645102/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com