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. 修改服务的运行权限,解决SVN Post Commit问题

    先来看一下错误现象 之前在Windows Server中安装了VirtualSVN Server,然后设置了Post Commit Hooks,在提交代码到版本库之后,将代码check到本地的一个Se ...

  2. SVG 相关整理

    1. 中文参考手册: http://www.runoob.com/svg/svg-reference.html SVG HTML5 资源教程 http://www.html5tricks.com/ta ...

  3. HTML5 本地文件操作之FileSystemAPI整理(一)

    一.请求配额 DeprecatedStorageInfo对象 window.webkitStorageInfo:当使用持久存储模式时需要用到该对象的接口 方法: 1.requestQuota(type ...

  4. 样条之贝塞尔(Bezier)

    我曾经发过两篇关于贝塞尔的文章:数学图形(1.47)贝塞尔(Bézier)曲线,数学图形之贝塞尔(Bézier)曲面.那是使用我自己定义的脚本语言生成贝塞尔图形.由于我自己定义的脚本语法功能有限,所以 ...

  5. Go语言之进阶篇mysql增 删 改 查

    一.mysql操作基本语法 1.创建名称nulige的数据库 CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci; ...

  6. sda, sdb, sdc, sda1, sda2在Linux中都代表什么

    意义如下: 第一个软驱 /dev/fd0. 第二个软驱 /dev/fd1. 第一块硬盘 /dev/sda. 第二块硬盘 /dev/sdb, 以此类推. 第一个SCSI CD-ROM /dev/scd0 ...

  7. CSS 中的字体兼容写法:用CSS为英文和中文字体分别设置不同的字体

    font-family的调用方法: font-family:Arial,'Times New Roman','Microsoft YaHei',SimHei; font:bold 12px/.75em ...

  8. Python基础案例教程

    一.超市买薯片 # 用户输入薯片的单价 danjia = float(input("薯片的单价")) # 用户输入购买袋数 daishu = int(input("购买的 ...

  9. Altium Designer 基本封装

    1. 按键的绘制和封装怎么画?如下图: 回答:注意元件的画法不要看错了,封装采用Miscellaneous Devices.IntLib[Footprint View]中的DPST-4 2.蜂鸣器的绘 ...

  10. 清空npm缓存

    nodejs 清空 npm 缓存 npm cache clean -f