1.情景展示
在注冊時,密碼要求必須同時包含:字母、數字、特殊字符,如何實現?
2.原因分析
用正則表達式進行校驗,是最方便的!
3.解決方案
// 密碼必須由 8-64位字母、數字、特殊符號組成 var reg = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,64}$/; if (reg.test(password)) {// 驗證通過 }
4.實際應用
HTML片段
<table class="table_add" border="0" width="100%"> <tr> <td align="right" class="FormItemText" width="30%"> 密碼: </td> <td class="FormItemControl" width="70%"> <input type="hidden" name="USERID" value="${param.USERID}"> <input type="password" class="TextBox" id="viewAdd_userPassword" name="USERPASSWORD" title="密碼長度為8-64個字符,必須包括數字、字母、特殊字符"/> </td> </tr> <tr> <td align="right" class="FormItemText"> 確認密碼: </td> <td class="FormItemControl"> <input type="password" class="TextBox" id="viewAdd_userConPassword""/> </td> </tr> </table>
JAVASCRIPT片段
/** * form表單提交前,密碼校驗 */ function validatePassword() { var password = $get('viewAdd_userPassword').value; // 去掉空格 password = password.replace(/\s/g,""); if ("" != password) { // 密碼必須由 8-64位字母、數字、特殊符號組成 var reg = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,.\/]).{8,64}$/; if (reg.test(password)) {// 驗證通過 // form表單提交前,去除空格 $get('viewAdd_userPassword').value = password; var password2 = $get('viewAdd_userConPassword').value; if (password2 != password) {// 密碼不一致 Dialog.Alert("消息提示", "兩次輸入的密碼不一致,請重新輸入!", function (result) { $get("viewAdd_userPassword").focus(); }, null, 50); return false; } return true; } else { Dialog.Alert("消息提示", "密碼長度為8-64個字符,必須包括數字、字母、特殊字符!", function (result) { $get("viewAdd_userPassword").focus(); }, null, 50); } return false; } else { Dialog.Alert("消息提示", "請輸入新密碼!", function (result) { $get("viewAdd_userPassword").focus(); }, null, 50); } return false; }
驗證座機號
var regex = /^(0\d{2}-\d{8})|(0\d{3}-\d{7})$/;
驗證郵箱
var regex = /^([a-z0-9A-Z]+[-|_|\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$/;