You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 16:45:04