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,}$/;

  

写在最后

  哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

相关推荐:

 

js 正则表达式校验必须包含字母、数字、特殊字符的更多相关文章

  1. JS生成随机的由字母数字组合的字符串

    前言 最近有个需求,是需要生成3-32位长度的字母数字组合的随机字符串,另一个是生成43位随机字符串. 方法一 奇妙的写法   1 Math.random().toString(36).substr( ...

  2. 全网最全JS正则表达式 校验数字

    Js代码 <script type="text/javascript"> function SubmitCk() { var reg = /^([a-zA-Z0-9]+ ...

  3. js正则表达式校验非负浮点数:^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. js正则表达式校验非正整数:^((-\d+)|(0+))$

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. js正则表达式校验非负整数:^\d+$ 或 ^[1-9]\d*|0$

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. js正则表达式校验非零的正整数:^[1-9]\d*$ 或 ^([1-9][0-9]*){1,3}$ 或 ^\+?[1-9][0-9]*$

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. js正则表达式校验正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. js正则表达式校验非负整数:^\d+$ 或 ^[1-9]\d*|0$ 【转载】

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. js判断字符是否包含字母汉字

    <script type="text/javascript"> function check(str) { if (escape(str).indexOf(" ...

随机推荐

  1. Error:(13, 60) java: 程序包com.sun.tools.internal.xjc.reader.xmlschema.bindinfo不存在

    我在import maven项目时,pom.xml报错Missing artifact com.sun:tools:jar:1.5.0,经过盘查发现是pom引入的struts2相关jar包导致报错. ...

  2. jQuery的deferred对象详解 jquery回调函数

    http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html jQuery的 ...

  3. vNetwork Standard Switch(vSS)和vNetwork Distributed Switch(vDS)的区别

    vSS: vSwitches are configured on each ESXi/ESX host. vDS: The configuration of vDS is centralized to ...

  4. 利用proguard对java web工程代码混淆

    目标: 将代码混淆,也就是给第三方源代码,让他们只能运行,却看不懂代码. 用到的工具: 混淆jar的工具:proguard5.1 下载地址:http://download.csdn.net/detai ...

  5. 让App中增加LruCache缓存,轻松解决图片过多造成的OOM

    上次有过电话面试中问到Android中的缓存策略,当时模糊不清的回答,如今好好理一下吧. Android中普通情况下採取的缓存策略是使用二级缓存.即内存缓存+硬盘缓存->LruCache+Dis ...

  6. 知乎:GAN 的发展对于研究通用人工智能有什么意义?

    https://www.zhihu.com/question/57668112/answer/155367561 Lyken 愿以有涯随无涯 收录于 编辑推荐知乎圆桌 · 296 人赞同了该回答 资历 ...

  7. 一次jdbc乱码解决

    今天我做了一个小实验,从sqlserver 2010中将一张表转移到mysql中,使用的是基本的jdbc,前面复制的好好地,不知道怎么了,到了第三万行,突然出现了下面的异常 Incorrect str ...

  8. ASP入门(二十二)-连接数据库

    ADO 简介 在 ASP 中访问数据库使用的 ADO 组件. ADO 是一项微软的技术. ADO 指 ActiveX 数据对象(ActiveX Data Objects). ADO 是微软的 Acti ...

  9. IE DIV背景透明,点击事件不响应解决方案

    IE DIV背景透明,给DIV绑定点击事件, 当点击DIV时,不会响应已经绑定的点击事件. 解决方案是给DIV的设置以下样式. background-image: url(data:image/gif ...

  10. 造轮子 | 怎样设计一个面向协议的 iOS 网络请求库

    近期开源了一个面向协议设计的网络请求库 MBNetwork,基于 Alamofire 和 ObjectMapper 实现,目的是简化业务层的网络请求操作. 须要干些啥 对于大部分 App 而言,业务层 ...