通过JavaScript进行登录验证

通过JavaScript进行登录验证
通过JavaScript进行登录验证

通过JavaScript进行登录验证

在大部分页面的首页中,都会存在用户登录的输入框。当用户输入了个人信息后(一般为用户名和密码),页面的程序通过检索和验证,如果结果为真,则跳转到子页面,如果验证后结果为假,则提示重新输入信息。而这种验证的过程必须借助数据库以及网站开发的语言的支持。

首先请看下面的流程图,对这个验证的过程有一个初步的了解。

用户在登录页面填写用户名和密码信息后,当点击提交按钮后,这些信息就会通过Http协议传送到网站后台的验证程序中,验证程序接收这些信息,并做一些必要的处理后,运行一个SQL查询语言(验证程序事先已经和数据库建立了连接),调用后台的数据库,如果这个用户名和密码在数据库中有记录,则数据库返回的结果为true,此时验证程序判断查询的结果,如果为true,则进行页面跳转,这时客户端的页面就会跳转到一个真正的业务界面中;如果查询返回的结果为false,则验证程序不进行跳转,并给客户端的页面输出一个警告信息。

以上的全过程可以通过很多高级编程语言实现,比如PHP、Java等。但是需要后台数据库的支持,而且网站的服务器也需要配置数据库插件。这一方面服务器架构过于繁杂,更关键的是,对于一些小型网站来说,为了节省成本和提高访问速度,没有必要进行如此复杂的服务器配置。所以就引出了接下来的关于通过JavaScript脚本语言来进行登录信息的验证操作。

众所周知,JavaScript是一种脚本语言,即运行在客户端的程序语言。当用户打开浏览器,输入某个网站地址后,不仅仅下载的是网站的html文件,同时也会下载与这个html文档配套的*.js 文件。这样当用户在点击页面的某些选项时页面才会做出正确的反应。

登录信息需要提交,在html页面中实现此功能借助的是表单标签。下面来看一段代码。

Html页面

Username:

Password:

JavaScript代码

var account=[["admin","aaa"],["master","mmm"],["leader","lll"]];

function validate(f){

var flag=false;

var username=https://www.360docs.net/doc/6016090542.html,ername.value;

var password=f.password.value;

for(var x=0;x

if(account[x][0]==username&&account[x][1]==password){ flag=true;

}

}

if(!flag){

alert("Error !");

}

return flag;

}

在html代码中,表单form标签的一个属性为onSubmit,这个属性表示当点击提交按钮后所之行的操作,看到该属性的值是一个返回值,即return validate(this)。这表示在提交后,其实还要执行一个validate()函数,如果这个函数的返回值为true,则页面跳转到accountManagement.jsp页面,如果函数返回值为false,则不予跳转,并弹出一个警告窗口,显示error的字样。

在JavaScript代码中,看到了一个二维数组,这就是通过JavaScript的方式来模拟一个数据库表,记录的是这个网站的所有用户名和与之对应的密码。这个validate()函数就是首先接收了表单中的username和password数据后,然后在这个二维数组中进行比对,如果有相同的记录,则返回true,否则为false。

另外,如果要想让这种方式正常运转,则还需要在html页面中加入一段代码,表示调用这个*.js 文档,这样html页面才能找到validate()函数。

其中adminlogin.js就是这个validate()函数和二维数组所在的文件名。

以上解释的是如何验证用户输入的信息,主要的重点是程序运行的流程和代码的架构。还有另一个方面的事情也很重要,就是如何验证用户输入的信息是否符合格式的要求。例如一个输入框要求用户输入一个邮箱的名字,可是由于一些原因用户输入的时候没有键入@,那么在日后处理用户信息的时候,会造成数据的不完整和不可用,无形中产生了很多垃圾

数据。记得有一个国外的高级程序员写的书中,讲用户输入比作“魔鬼”,因为你无法预知用户会如何输入。所以应该在最开始的时候就讲数据进行验证,以此来获得规范的可用的数据。

Html代码:

请输入邮箱地址:

用来进行输入数据验证的代码仍然是上一节采用的JavaScript代码,不同的是,对代码的格式要通过正则表达式进行验证,正则表达式在很多语言中都在使用,是用来进行数据格式规范的重要手段。

下面介绍正则表达式。

括号(Brackets):

括号当被用于进行上下文的检测是有着特殊的意义,它被用来找到一段字符。

Expression Description

[...]Any one character between the brackets.

[^...]Any one character not between the brackets.

[0-9]It matches any decimal digit from 0 through 9.

[a-z]It matches any character from lowercase a through lowercase z.

[A-Z]It matches any character from uppercase A through uppercase Z.

[a-Z]It matches any character from lowercase a through uppercase Z.

原则上正则表达式是一个字符对应数据的一个字符,也可以用括号讲正则表达式括起来,表示括号里的字符对应数据的一个字符。

alert(/ruby/.test("ruby"));//true 一一对应

alert(/[abc]/.test("a"));//true 含有a或者b或者c

alert(/[abc]/.test("b"));//true 同上

alert(/[abc]/.test("c"));//true 同上

另外的一种情况是,表示数据不能匹配正则表达式中括号里的规则。alert(/[^abc]/.test("a"));//false

alert(/[^abc]/.test("b"));//false

alert(/[^abc]/.test("6"));//true

alert(/[^abc]/.test("gg"));//true

还可以把一个范围的正则规则放在中括号里

alert(/[a-f]/.test("b"));//true alert(/[a-f]/.test("k"));//false alert(/[a-z]/.test("h"));//true alert(/[A-Z]/.test("gg"));//false alert(/[^H-Y]/.test("G"));//true alert(/[0-9]/.test("8"));//true alert(/[^7-9]/.test("6"));//true

预定义

alert(/\d/.test("3")); //true alert(/\d/.test("w")); //false alert(/\D/.test("w")) ; //true

alert(/\w/.test("w")); //true alert(/\w/.test("司")); //false alert(/\W/.test("徒")); //true alert(/\s/.test(" ")); //true alert(/\S/.test(" ")); //false alert(/\S/.test("正")); //true alert(/./.test("美")); //true alert(/./.test(" ")); //true

量词(Quantifiers)

检测字符串中拥有指定的字符的个数,如果满足个数的要求,则为true,否则为false。

Expressio

Description

n

p+It matches any string containing at least one p.

p*It matches any string containing zero or more p's.

p?It matches any string containing one or more p's.

p{N}It matches any string containing a sequence of N p's

p{2,3}It matches any string containing a sequence of two or three p's.

p{2, }It matches any string containing a sequence of at least two p's.

p$It matches any string with p at the end of it.

^p It matches any string with p at the beginning of it.

经过以上的正则表达式规范的介绍,我们可以试着写一段验证邮箱地址的验证程序

其中的关键代码是/^(\w)+@(\w)+((\.(\w){2,3}){1,2})$/,这就是用来验证邮箱地址格式的正则表达式。

上图中的\.(\w){2,3} 其实表示的是这样的一些例子,比如 .com .cn .org .163等等,然后用括号包起来成为(\.(\w){2,3}),后面跟上{1,2},就表示.com .cn .org .163等等出现1次或者2次。因为有些邮箱的写法是XXX@https://www.360docs.net/doc/6016090542.html,,而有些邮箱写法是这样的XXX@https://www.360docs.net/doc/6016090542.html,。

以上就是关于通过JavaScript进行验证简单讲解,谢谢!

JavaScript入门教程(初学者不可多得的优秀入门教材,通俗易懂,专业术语通俗化)

第 1 章 JavaScript 语言入门 1 为什么学习 JavaScript
提要:Javascript 是学习脚本语言的首选。她兼容性好,绝大多数浏览器均支持 Javascript,而且她功能强大,实现简单方便,入门简单,即使是程序设计新手也可以非常 快速容易地使用 JavaScript 进行简单的编程。
Javascript 是由 Netscape 公司创造的一种脚本语言。为便于推广,被定为 javascript,但 是 javascript 与 java 是两门不相干的语言, 作用也不一样。 作为一门独立的编程语言, javascript 可以做很多的事情,但它最主流的应用还是在 Web 上——创建动态网页(即网页特效)。 Javascript 在网络上应用广泛, 几乎所有的动态网页里都能找到它的身影。 目前流行的 AJAX 也是依赖于 Javascript 而存在的。 Javascript 与 Jscript 也不是一门相同的语言, Jscript 和 vbscript 是微软开发的两种脚本语 言,微软,Netscape 公司以及其他语言开发商为减少 web 开发者的兼容麻烦,所以成立 ECMA , 该组 织 专 门制定 脚 本 语 言的 标 准 和规范 。 ECMA 制 定 的标 准脚 本 语 言 叫做 ECMAScript,Javascript 符合 ECMA 的标准,其实 Javascript 也可以叫做 ECMAScript. Jscript 也 ECMA 的标准, 但用户较少。vbscript 仅局限在微软的用户, Netscape 不支持。 概括地说,JavaScript 就是一种基于对象和事件驱动,并具有安全性能的脚本语言,脚 本语言简单理解就是在客户端的浏览器就可以互动响应处理程序的语言, 而不需要服务器的 处理和响应,当然 JavaScript 也可以做到与服务器的交互响应,而且功能也很强大。而相对 的服务器语言像 asp https://www.360docs.net/doc/6016090542.html, php jsp 等需要将命令上传服务器,由服务器处理后回传处理结 果。对象和事件是 JavaScript 的两个核心。 JavaScript 可以被嵌入到 HTML 文件中,不需要经过 Web 服务器就可以对用户操作作 出响应,使网页更好地与用户交互;在利用客户端个人电脑性能资源的同时,适当减小服务 器端的压力,并减少用户等待时间。
2 将 JavaScript 插入网页的方法
与在网页中插入 CSS 的方式相似,使用
language="javascript"表示使用 JavaScript 脚本语言,脚本语言还有 vbscript、 jsscript 等,如果没有 language 属性,表示默认使用 JavaScript 脚本。其中的...就是代 码的内容。例如:

js表单验证代码全集

js表单验证代码全集 2008年06月25日星期三下午 03:23 1:js 字符串长度限制、判断字符长度、js限制输入、限制不能输入、textarea 长度限制 2.:js判断汉字、判断是否汉字、只能输入汉字 3:js判断是否输入英文、只能输入英文 4:js只能输入数字,判断数字、验证数字、检测数字、判断是否为数字、只能输入数字 5:只能输入英文字符和数字 6: js email验证、js 判断email 、信箱/邮箱格式验证 7:js字符过滤,屏蔽关键字 8:js密码验证、判断密码 2.1: js 不为空、为空或不是对象、判断为空、判断不为空 2.2:比较两个表单项的值是否相同 2.3:表单只能为数字和"_", 2.4:表单项输入数值/长度限定 2.5:中文/英文/数字/邮件地址合法性判断 2.6:限定表单项不能输入的字符 2.7表单的自符控制 2.8:form文本域的通用校验函数 2.9:js验证手机号,含158,159段的 1. 长度限制

2. 只能是汉字 3." 只能是英文
2. 只能是汉字 3." 只能是英文 控制台输出: keydown keypress keyup 2、浏览器的兼容性

(1)FireFox、Opera、Chrome 事件对应的函数有一个隐藏的变量e,表示发生事件。 e有一个属性e.which指示哪个键被按下,给出该键的索引值(按键码)。 静态函数String.fromCharCode()可以把索引值(按键码)转化成该键对应的的字符。eg: [html]view plaincopyprint? 1. 2. FireFox、Opera、Chrome中输入:a 输出:按键码:97 字符:a (2)IE IE不需要e变量,window.event表示发生事件。 window.event有一个属性window.event.keyCode指示哪个键被按下,给出该键的索引值(按键码)。 静态函数String.fromCharCode()可以把索引值(按键码)转化成该键对应的的字符。eg: [html]view plaincopyprint?

Web表单验证实例

Web表单验证实例 学习交流,非诚勿扰:1244399731一、实验要求: 创建一个页面,命名为“表单验证.html”。在页面上创建一个表单,命名为“regform”,其中包含元素为:文本框(username,获取用户名)、文本框(password,密码)、文本框(passwordcheck,对密码进行确认)、单选按钮(radiosex)选择性别、兴趣爱好(hobbycheckbox,至少可选择5项爱好)、下拉列表(homedownselect,用于选择籍贯)、文本域(briefarea,用于获得用户简介)、提交按钮(formsubmit)、重置按钮(formreset)。 当提交表单时,对表单中的信息进行验证并给出提示,要求如下:(1)要求验证上面的所有元素的值必须不为空,即用户必须填写相关内容。 (2)用户名、密码必须是6-20位。 (3)要求password与passwordcheck必须相同。 (4)在表达允许提交的情况下,完成下面动作:打开一个新窗口wid,将上述验证后的表单信息在wid中显示出来。 二、源代码:

用户注册

JAVASCRIPT脚本编程-带答案

1、JavaScript是什么_______。 A)客户端脚本语言√ B)客户端标记语言 C)服务器端脚本语言 D)服务器端标记语言 2、关于JavaScript的作用说法正确的是_______。(选三项) A)JavaScript即面向过程又面向对象√ B)实现客户端表单验证√ C)制作网页特效√ D)JavaScript语言属于低级语言 3、关于JavaScript编程工具的说法,正确的是_______。 A)只能使用DreamWeaver B)只能使用记事本 C)只能使用EditPlus D)一切文本编辑器皆可√ 4、完整的JavaScript实现包括三个部分,除了_______。 A)ECMAScript B)BOM C)COM √ D)DOM 5、JavaScript脚本文件的后缀名是_______。 A)*.jsp B)*.js √ C)*.java D)*.asp 6、将JavaScript脚本文件导入到HTML页面所对应的标记是_______。 A) B) C) D)