Swing正则表达式实践:输入验证与数据清理

需积分: 10 2 下载量 115 浏览量 更新于2024-09-17 收藏 6KB TXT 举报
"Swing与正则表达式用于文本输入验证和格式化" 在Java Swing中,我们经常需要处理用户输入的数据,确保它们符合特定的格式。正则表达式(Regular Expressions)在这个过程中扮演了关键角色,它可以用来验证、过滤和格式化用户输入的信息。以下是一些正则表达式的应用示例,以及如何在Swing组件如`JTextField`中使用它们。 1. 数字和小数验证: - `[0-9|\.]` 这个正则表达式允许用户输入数字0到9和小数点,常用于货币或数值输入。 ```java text.setText(text.getText().replaceAll("[^0-9|\\.]","")); ``` 这段代码会在用户按下键盘键时,更新`JTextField`的内容,移除所有非数字和非小数点字符。 2. 非中文字符过滤: - `[^\u4e00-\u9fa5]` 此正则表达式会匹配所有非中文字符,可以用来确保用户输入的全是中文字符。 3. ASCII字符检查: - `[^x00-xff]` 这个正则表达式可以用于查找所有非ASCII字符。 4. 单词和空格匹配: - `\b` 是单词边界,`ns*` 匹配任意数量的空格。可以组合使用来匹配整个单词。 5. HTML标签去除: - `<(S*?)[^>]*>.*?|<.*?/>` 用于去除HTML标签,保持纯文本。 6. 邮箱验证: - `w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*` 这是常见的邮箱地址验证正则表达式,确保输入格式正确。 7. 用户名验证: - `^[a-zA-Z][a-zA-Z0-9_]{4,15}$` 验证用户名,以字母开头,包含4到15个字母、数字或下划线。 8. 电话号码格式化: - `d{3}-d{8}|d{4}-d{7}` 匹配中国电话号码,格式为3位区号-8位本地号或4位区号-7位本地号。 9. QQ号验证: - `[1-9][0-9]{4,}` 验证QQ号码,至少5位,且第一位不能是0。 10. 邮政编码验证: - `[1-9]d{5}(?!d)` 验证中国邮政编码,6位数字且首位不为0。 11. 身份证号验证: - `d{15}|d{18}` 验证15位或18位的身份证号。 12. IP地址验证: - `d+.d+.d+.d+` 验证IPv4地址。 13. 正整数、负整数和零: - 一系列正则表达式用于验证不同类型的整数,例如:非负整数、非正整数、带有符号的整数等。 14. 字母验证: - `^[A-Za-z]+$` 验证全由字母组成的字符串,大小写均可。 15. 大写字母验证: - `^[A-Z]+$` 仅允许大写字母。 16. 小写字母验证: - `^[a-z]+$` 仅允许小写字母。 在Swing中,这些正则表达式通常结合`KeyListener`或`DocumentFilter`来实时监控并处理用户输入。例如,通过自定义`DocumentFilter`,我们可以实现更精细的输入控制,防止用户输入不符合规则的字符。此外,对于复杂的输入验证,还可以使用`JFormattedTextField`或`MaskFormatter`。 正则表达式是Java Swing中处理用户输入的强大工具,它们可以帮助我们构建更健壮、用户友好的界面,确保数据的准确性和一致性。