Java中如何检测字符串中的特殊字符以实现用户名合法性校验
实现方案
你可以通过正则表达式定义合法用户名的允许字符范围,直接对输入的字符串做校验即可,无需额外引入依赖。
核心规则说明
你可以自定义允许的字符范围,以下示例默认允许:大小写英文字母、数字、中文、下划线,长度限制为1-16位,只要不符合该规则就会触发提示。
完整实现代码
import java.util.Scanner; class StackOverflowExample { public static void main(String[] args) { System.out.println("Welcome New Player! What will your name be?"); Scanner userInteraction = new Scanner(System.in); String userInput = userInteraction.nextLine(); // 用户名校验逻辑 // 正则可根据你的需求调整允许的字符范围 String validUserNameRegex = "^[a-zA-Z0-9_\\u4e00-\\u9fa5]{1,16}$"; if (userInput.matches(validUserNameRegex)) { System.out.println("Welcome " + userInput + "!"); } else { System.out.println("请修改您的用户名"); } userInteraction.close(); } }
规则调整说明
- 如果需要新增允许的字符,直接把对应字符放到正则的中括号
[]内即可,比如要允许减号就改成^[a-zA-Z0-9_\\u4e00-\\u9fa5-]{1,16}$ - 如果需要调整长度限制,修改
{1,16}中的数值即可,比如{2,12}就是限制长度2到12位 - 如果不需要支持中文,删除
\\u4e00-\\u9fa5即可
内容的提问来源于stack exchange,提问作者FairOPShotgun
相关产品推荐
相关产品推荐

