Java 如何只获取用户名字符而不是空格?

Java 如何只获取用户名字符而不是空格?,java,jsp,Java,Jsp,在jsp应用程序中,我正在检查用户名和密码,当在用户名中输入空格表示它没有显示错误时,如何验证它?执行正则表达式验证,如果您的用户名只包含数字和字母,请执行以下操作 [A-Za-z0-9]+ 根据长度限制更改该值在检查用户名/密码之前,您可能希望trim()该值: String password = getPassword().trim(); 这将删除所有前导和尾随空格。为什么要在后端执行此操作,您可以使用javascrit正则表达式: ^([a-zA-Z0-9.]+@){0,1}([a-z

在jsp应用程序中,我正在检查用户名和密码,当在用户名中输入空格表示它没有显示错误时,如何验证它?

执行正则表达式验证,如果您的用户名只包含数字和字母,请执行以下操作

[A-Za-z0-9]+

根据长度限制更改该值

在检查用户名/密码之前,您可能希望
trim()
该值:

String password = getPassword().trim();

这将删除所有前导和尾随空格。

为什么要在后端执行此操作,您可以使用javascrit正则表达式:

^([a-zA-Z0-9.]+@){0,1}([a-zA-Z0-9.])+$

这将允许A-Z、A-Z、0-9和,最多一个@

您有两个不同的问题:

  • 如何仅获取用户名字符而不是空格?

    为此,只需替换字符串中的所有空白:

    String name = " blah is a word";
    name = name.replace(" ", "");
    
  • 如何验证用户名?

    为此,只需检查字符串是否包含空格

    String name = " blah is a word";
    if (name.contains(" "))
    {
        // Wrong
    } else
    {
        // Correct
    }
    

  • 如果用户在用户名之间加了一个空格,比如“用户名”而不是“用户名”,会怎么样?也就是说,按照一般惯例,这是一种非法入境。没有人期望服务器会神奇地纠正它。所以,这就是为什么需要客户端验证…?我不关心客户端的验证。我会将用户输入的任何内容发送到服务器,并让服务器决定输入的字符串是否为有效用户名。我唯一的服务器端服务:修剪以删除前导空格和尾随空格。