正则表达式

254 阅读2分钟

关于正则表达式的一些应用

昨天因为有事情没有及时更新昨天所学的内容,每天对自己所学的内容进行一个总结是一个特别好的学习方式。写这些文章的目的,主要是想对自己的知识的有进一步的巩固,如果能够帮助到其他人,那就更好了。

正则表达式的实际运用

现在我能想到的正则表达式的运用,主要是应用在比如说用户名的校验,密码的输入格式的校验,手机号格式的校验,邮箱的校验等等。 下面我们就根据这几种简单的情况来进行前后端的校验。

用户名的校验

比方说,我们只允许用户输入6到12位的字母。 在前端的话应该这样校验:

<input type="text" name="username" pattern="[a-zA-Z]{6,12}" required="required" placeholder="请输入6-12位的字母">

需要注意的地方有,第一我们在前端应用正则表达式是需要用pattern属性来调用的,第二,需要在后面加上一个required属性。 在后端这样校验:

//首先我们先接收从前端请求的数据
String username = request.getParameter("username");
//然后我们确定该数据的格式
String usernameRegex = "[a-zA-Z]{6,12}";
//最后我们设定一个boolean值来确定从前端传过来的数据是否符合格式
boolean flag1 = username.matches(usernameRegex);

密码的校验

密码为数字,最少6位 前端校验:

<input type="password" name="password" pattern="[0-9]{6,}" required="required" placeholder="请输入至少6位数字">

后端校验:

String password = request.getParameter("password");
Stirng passwordRegex = "[0-9]{6,}";
boolean flag2 = password.matches(passwordRegex);

手机号的校验

手机号为正常的手机号 前端校验:

<input teye="text" name="phone" pattern="[1][3578][0-9]{9}" required="required" placeholder="请输入手机号">

后端校验:

String phone = request.getParameter("phone");
String phoneRegex = "[1][3578][0-9]{9}";
boolean flag3 = phone.matches(phoneRegex);

邮箱的校验

邮箱为正常的邮箱格式 前端校验:

<input type="email" name="email" required="required" placeholder="请输入邮箱">

后端校验:

String email = request.getParameter("email");
String emailRegex = ""[a-zA-Z_0-9]{3,}@([a-zA-Z]+|\\d+)(\\.[a-zA-Z]+)+";
boolean flag4 = email.matches(emailRegex);

当后端每一项都比对完了之后,我们进行综合的比对,确定用户输入的格式是否正确

if(flag1 && flag2 && flag3 && flag4){
    //如果正确在控制台打印信息
    System.out.println("username=" + username);
    System.out.println("password=" + password);
    System.out.println("phone=" + phone);
    System.out.println("email=" + email);
}else{
    //如果错误,则给用户提示输入的格式不正确
    System.out.println("您好,您输入的格式不正确,请重新输入");
}