亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

通過正則表達式使用ajax檢驗注冊信息功能

2020-01-20 21:33:43
字體:
來源:轉載
供稿:網友

本期博客內容應該不算多,我們此次的目的是通過正則表達式并利用ajax可以實現動態交互的特點,檢驗注冊的用戶名以及密碼是否合法。

Entity層

該層主要包含一個用戶類User,代碼如下:

package cn.cpx.springmvc.entity;import java.util.Date;/** * 用戶實體類 * @author autumn_leaf * */public class User {  private int uId; private String uName; private String uPwd; private String uPhone; private double uBalance; private int uState; private int uRole; private String uImage;//用戶頭像 private Date uBirth;  public int getuId() { return uId; } public void setuId(int uId) { this.uId = uId; } public String getuName() { return uName; } public void setuName(String uName) { this.uName = uName; } public String getuPwd() { return uPwd; } public void setuPwd(String uPwd) { this.uPwd = uPwd; } public String getuPhone() { return uPhone; } public void setuPhone(String uPhone) { this.uPhone = uPhone; } public double getuBalance() { return uBalance; } public void setuBalance(double uBalance) { this.uBalance = uBalance; } public int getuState() { return uState; } public void setuState(int uState) { this.uState = uState; } public int getuRole() { return uRole; } public void setuRole(int uRole) { this.uRole = uRole; }  public String getuImage() { return uImage; } public void setuImage(String uImage) { this.uImage = uImage; }  public Date getuBirth() { return uBirth; } public void setuBirth(Date uBirth) { this.uBirth = uBirth; }  public User(int uId, String uName, String uPwd, String uPhone, double uBalance, int uState, int uRole,String uImage,Date uBirth) { super(); this.uId = uId; this.uName = uName; this.uPwd = uPwd; this.uPhone = uPhone; this.uBalance = uBalance; this.uState = uState; this.uRole = uRole; this.uImage = uImage; this.uBirth = uBirth; } public User() { super(); } public User(String uName, String uPwd, String uPhone) { super(); this.uName = uName; this.uPwd = uPwd; this.uPhone = uPhone; }  //添加注冊信息 public User(String uName, String uPwd, String uPhone, Date uBirth) { super(); this.uName = uName; this.uPwd = uPwd; this.uPhone = uPhone; this.uBirth = uBirth; }  public User(String uName, String uPwd, String uPhone, String uImage) { super(); this.uName = uName; this.uPwd = uPwd; this.uPhone = uPhone; this.uImage = uImage; }  public User(String uName, String uPwd) { super(); this.uName = uName; this.uPwd = uPwd; } @Override public String toString() { return "User [uId=" + uId + ", uName=" + uName + ", uPwd=" + uPwd + ", uPhone=" + uPhone + ", uBalance="  + uBalance + ", uState=" + uState + ", uRole=" + uRole + ", uImage=" + uImage + ", uBirth=" + uBirth  + "]"; }}

上述User類我們實際此次只會用到用戶名和密碼兩個屬性,其他屬性此次不會使用到。

Controller層

我們此次為操作方便,Dao層和Service層就不寫了,留給讀者自己去思考。我們新建UserController類,代碼如下:

package cn.cpx.springmvc.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import cn.cpx.springmvc.entity.User;@Controller@RequestMapping("/user")public class UserController { /** * 根據輸入的用戶名查詢用戶名是否存在,實現前臺輸入用戶名及時驗證 */ @RequestMapping("/checkUname") @ResponseBody public String checkUname(User user) throws Exception { //根據user(前臺輸入的用戶名)查詢數據庫中用戶名 //下面的判斷最好寫在Service中 //使用String result = userService.checkUname(user); if("chen".equals(user.getuName())) {  return "{/"msg/":/"no/"}"; } return "{/"msg/":/"ok/"}"; }}

加上@ResponseBody注解,是為了確保返回JSON形式的數據,我們返回列表形式的字符串,并進行轉義,如果用戶名已經存在(這里僅有chen),則返回msg:no,相反,返回msg:ok。

視圖層

我們新建register.jsp,代碼如下:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Insert title here</title><script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.8.3.js"></script><script> //使用功能DOM對象獲取表單信息 function checkName() { //console.log(1); var name = document.getElementById("uname").value; //console.log("用戶名:"+name); //console.log(document.getElementById("uname").placeholder); //根據用戶輸入內容,完成頁面驗證,用戶名只能是0-9,a-z,A-Z,也可以輸入中文 //綜合正則表達式驗證 var unameCode = /^[0-9A-z/u4e00-/u9fa5]{3,10}$/; if (unameCode.test(name)) {  console.log("用戶名命名合法!");  //還要和后臺進行驗證,驗證用戶名是否重復,使用Ajax動態交互  $.ajax({  type : 'post',  url : 'user/checkUname.action',//請求的url地址,建議使用絕對地址  data : 'uName='+name,//請求攜帶的參數  dataType:'json',//如果后臺返回的數據是String改造的,這里需要指定返回類型,否則data.msg取不到值  success : function(data) {//sucess中function的data可以解析后臺的數據   console.log(data);   console.log(data.msg);   if("ok" == data.msg) {   document.getElementById("unameMsg").innerHTML = "<font color='green'>√用戶名合法!</font>";   }else {   document.getElementById("unameMsg").innerHTML = "<font color='red'>×用戶名重復!</font>";   }  },  error : function() {//失敗回調函數   console.log("解析失敗!");  }  });  //document.getElementById("unameMsg").innerHTML = "<font color='orange'>√用戶名合法!</font>"; } else {  console.log("命名不合法!");  //document.getElementById("unameMsg").innerHTML = "<font color='orange'>×用戶名不合法!</font>";  document.getElementById("unameMsg").innerHTML = "x 用戶名不合法!";  //使用JS可以改變CSS的樣式  document.getElementById("unameMsg").style.color = "red";  document.getElementById("unameMsg").style.fontSize = "20px"; } } //失去焦點事件 function checkPwd() { var pwd = document.getElementById("upwd").value; //強密碼(必須包含大小寫字母和數字的組合,不能使用特殊字符,長度在6-12之間) var upwdCode = /^(?=.*/d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{6,12}$/; if (upwdCode.test(pwd)) {  document.getElementById("upwdMsg").innerHTML = "<font color='blue'>√密碼合法!</font>"; } else {  document.getElementById("upwdMsg").innerHTML = "<font color='blue'>×密碼不合法!</font>" } }</script></head><body> <form method="post"> <input type="text" name="uname" id="uname" placeholder="請輸入用戶名"  onkeyup="checkName()" /> <span id="unameMsg"></span><br />  <input type="password" name="upwd" id="upwd" placeholder="請輸入密碼"  onblur="checkPwd()" /> <span id="upwdMsg"></span><br/> </form></body></html>

以上的代碼我們進行一些解釋:

①檢查用戶名要求是3-10位,數字0-9,字母A-Z(a-z)以及中文都可以,但是不能為chen,后面加了一個提示信息,在后面span標簽可以顯示,在ajax函數中,由于后臺接收的uname是String類型,而我們要確保返回json數據,所以加了一句'dataType:json';

②檢驗密碼其實原理差不多,我們也是通過正則表達式,要求密碼必須包含大小寫字母和數字的組合,不能使用特殊字符,長度在6-12之間,密碼這邊相對簡單一些,因為不需要與后臺動態交互,所以不使用ajax。
關于正則表達式如何寫以及如何檢驗,這里提供一個網址供大家日常學習,鏈接為正則表達式在線測試。
接下來我們進行運行,截圖如下:

���������ͼƬ����
���������ͼƬ����

我們使用了兩種不同的事件,用戶名檢驗使用的是onkeyup,它是按鍵松開事件,密碼檢驗使用的是onblur,它是失去焦點事件,好了,檢驗結果也符合我們前面寫的邏輯思維了,本期博客就到這里了,我們下期見!

總結

以上所述是小編給大家介紹的通過正則表達式使用ajax檢驗注冊信息功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
69**夜色精品国产69乱| 中文字幕亚洲欧美日韩2019| 欧美成人手机在线| 欧美最猛黑人xxxx黑人猛叫黄| 精品久久香蕉国产线看观看gif| 国产精品激情av电影在线观看| 久热爱精品视频线路一| 亚洲精品网址在线观看| 亚洲肉体裸体xxxx137| 久久躁狠狠躁夜夜爽| 欧美网站在线观看| 欧美成人午夜剧场免费观看| 综合激情国产一区| 亚洲aa在线观看| 久久久999国产| 国产精品视频大全| 欧美天堂在线观看| 国产精品999999| 国产香蕉精品视频一区二区三区| 欧美日韩亚洲激情| 国产一区二区三区视频在线观看| 久久香蕉国产线看观看av| 黑人巨大精品欧美一区免费视频| 精品免费在线视频| 国产区亚洲区欧美区| 日韩中文第一页| 欧美中文字幕视频| 欧美日韩在线看| 国产精品九九久久久久久久| 欧美黑人一级爽快片淫片高清| 久久久久中文字幕2018| 欧美在线性爱视频| 欧美色videos| 亚洲福利在线看| 成人h猎奇视频网站| 久久人人爽人人爽人人片亚洲| 国产一区av在线| 亚洲白拍色综合图区| 91精品国产乱码久久久久久久久| 欧美精品亚州精品| 伊人av综合网| 好吊成人免视频| 亚洲国产日韩欧美在线图片| 亚洲香蕉在线观看| 国产日韩欧美电影在线观看| 亚洲精品suv精品一区二区| 欧美日韩精品在线播放| 色天天综合狠狠色| www.欧美精品| 亚洲性无码av在线| 国产欧美日韩精品专区| 国产精品福利在线观看| 午夜伦理精品一区| 亚洲国产精品美女| 在线日韩av观看| 欧美丰满少妇xxxx| 日韩av在线免费观看一区| 国产精品h片在线播放| 国产一区二区三区四区福利| 亚洲欧美国产日韩中文字幕| 亚洲精品久久视频| 欧日韩在线观看| 亚洲欧美日韩中文视频| 在线亚洲男人天堂| 久久久999成人| 超碰日本道色综合久久综合| 欧美激情精品久久久久久黑人| 国产精品偷伦一区二区| 欧美老肥婆性猛交视频| 538国产精品视频一区二区| 欧美激情在线有限公司| 成人美女免费网站视频| 国产成人涩涩涩视频在线观看| 国产亚洲精品久久久久久777| 亚洲日本欧美中文幕| 日韩成人av一区| 久久精品国产成人精品| 欧美日韩亚洲一区二区| 日韩av一区二区在线| 国产日韩中文字幕在线| 亚洲第一页自拍| 欧美日韩国产专区| 国产经典一区二区| 国产精品视频男人的天堂| 成人午夜两性视频| 欧美成人手机在线| www.99久久热国产日韩欧美.com| 欧美一级在线亚洲天堂| 欧美午夜美女看片| 色噜噜狠狠色综合网图区| 亚洲国产精品字幕| 精品国产一区二区三区久久久狼| 97精品国产97久久久久久| 国模精品视频一区二区三区| 国产精品高清免费在线观看| 7777精品视频| 揄拍成人国产精品视频| 欧美性xxxx在线播放| 国产精品久久久久久久美男| 亚洲老板91色精品久久| 在线观看91久久久久久| 98精品国产自产在线观看| 成人精品一区二区三区电影免费| 亚洲第一福利网| 久99九色视频在线观看| 欧美激情国产高清| 欧美日韩亚洲视频一区| 亚洲精品xxx| 久久久电影免费观看完整版| 国产一区二区三区精品久久久| 久久人人爽人人爽人人片亚洲| 日韩电影第一页| 91高清视频在线免费观看| 亚洲一区999| 欧美日韩午夜剧场| 亚洲国产精品字幕| 亚洲精品wwww| 久99九色视频在线观看| 久久久精品一区| 这里精品视频免费| 国产精品h在线观看| 欧美午夜精品久久久久久浪潮| 91在线视频导航| 青青久久aⅴ北条麻妃| 欧美另类极品videosbestfree| 欧美视频在线观看免费| 久久中文字幕视频| 久久久av一区| 成人精品一区二区三区| 精品国产1区2区| 国产精品视频资源| 欧美激情视频一区二区三区不卡| 日本91av在线播放| 色先锋资源久久综合5566| 亚洲精品理论电影| 亚洲自拍另类欧美丝袜| 97超级碰碰碰久久久| 日韩女优人人人人射在线视频| 一区二区亚洲精品国产| 性欧美长视频免费观看不卡| 国产黑人绿帽在线第一区| 欧美巨乳在线观看| 亚洲精品中文字幕女同| 日韩欧美在线视频日韩欧美在线视频| 亚洲欧美国产精品专区久久| 欧美国产第二页| 日韩av在线影视| 777国产偷窥盗摄精品视频| 欧美午夜片在线免费观看| 久久亚洲精品视频| 亚洲精品乱码久久久久久金桔影视| 日韩av电影中文字幕| 成人国产精品久久久久久亚洲| 久久久久99精品久久久久| www国产精品com| 欧美午夜女人视频在线| 麻豆一区二区在线观看| 国产精欧美一区二区三区| 这里只有精品久久| 久久99视频精品| 亚洲福利视频二区| 亚洲在线一区二区| 欧美在线一区二区三区四| 欧美中文在线免费|