完成一个较为完整的用户注册页面

实验目的:

要求能够熟练掌握javascript的一系列知识要点,并能够熟练的应用到实际项目中,能够通过javascript语法、对象、事件、函数等来完成页面上的脚本代码。

实验内容:

要求:

完成一个较为完整的用户注册页面。

1:要求用户输入用户名时只能够输入英文、数字和下划线

2:要求用户输入的密码和确认密码必须一致

3:要求用户上传本地磁盘中的一个图片文件作为头像

4:要求用户输入验证邮箱,通过javascript代码验证邮箱格式是否正确

5:要求页面实现验证码功能,点击“注册”按钮后,无论是否完成注册,验证码都能够自动刷新

实验步骤与调试过程:

实验步骤如下:

完成一个较为完整的用户注册页面。

1:要求用户输入用户名时只能够输入英文、数字和下划线

function blu(){

var space=document.form1.username.value;

//var str = /^[\u4E00-\u9FA5\uf900-\ufa2d\w]/;

var str = /\w[a-zA-Z0-9_]*/;

if(space==""){

var sp=document.getElementById("sp").innerHTML="用户不能为空";

}

else if(!space.match(str)){

document.getElementById("sp").innerHTML="只能够输入英文、数字和下划线";

//alert("只能够输入英文、数字和下划线");

return false;

}

else

{

document.getElementById("sp").innerHTML="";

}

}

2:要求用户输入的密码和确认密码必须一致

//输入密码,并判断密码是否一致

function funpsd(){

var psd=document.form1.psd.value

if(psd==""){

document.getElementById("sp1").innerHTML="密码不能为空";

}

else if(psd.length<6 || psd.length>15){

document.getElementById("sp1").innerHTML="密码不能小于6位或不能大于15位";

}

else if(isNaN(psd)){

document.getElementById("sp1").innerHTML="密码必须是数字";

}

else {

document.getElementById("sp1").innerHTML="";

}

}

function funcpsd(){

var psd1=document.form1.psd.value;

var psd2=document.form1.cpsd.value;  //变量赋值在前

if(psd1!=psd2){

document.getElementById("sp2").innerHTML="密码不一致,请重新输入";

document.form1.psd.select();

//psd2="" //把变量清空,但document.form1.cpsd.value还是原来的值,并没有清空document.form1.cpsd.value的值

document.form1.cpsd.value="";

}

else{

document.getElementById("sp2").innerHTML="";

}

}

3:要求用户上传本地磁盘中的一个图片文件作为头像

<script type="text/javascript">

//图片上传预览    IE是用了滤镜。

function previewImage(file)

{

var MAXWIDTH  = 180;

var MAXHEIGHT = 180;

var div = document.getElementById(‘preview‘);

if (file.files && file.files[0])

{

div.innerHTML =‘<img id=imghead>‘;

var img = document.getElementById(‘imghead‘);

img.onload = function(){

var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);

img.width  =  rect.width;

img.height =  rect.height;

//                 img.style.marginLeft = rect.left+‘px‘;

img.style.marginTop = rect.top+‘px‘;

}

var reader = new FileReader();

reader.onload = function(evt){img.src = evt.target.result;}

reader.readAsDataURL(file.files[0]);

}

else //兼容IE

{

var sFilter=‘filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="‘;

file.select();

var src = document.selection.createRange().text;

div.innerHTML = ‘<img id=imghead>‘;

var img = document.getElementById(‘imghead‘);

img.filters.item(‘DXImageTransform.Microsoft.AlphaImageLoader‘).src = src;

var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);

status =(‘rect:‘+rect.top+‘,‘+rect.left+‘,‘+rect.width+‘,‘+rect.height);

div.innerHTML = "<div id=divhead style=‘width:"+rect.width+"px;height:"+rect.height+"px;margin-top:"+rect.top+"px;"+sFilter+src+"\"‘></div>";

}

}

function clacImgZoomParam( maxWidth, maxHeight, width, height ){

var param = {top:0, left:0, width:width, height:height};

if( width>maxWidth || height>maxHeight )

{

rateWidth = width / maxWidth;

rateHeight = height / maxHeight;

if( rateWidth > rateHeight )

{

param.width =  maxWidth;

param.height = Math.round(height / rateWidth);

}else

{

param.width = Math.round(width / rateHeight);

param.height = maxHeight;

}

}

param.left = Math.round((maxWidth - param.width) / 2);

param.top = Math.round((maxHeight - param.height) / 2);

return param;

}

</script>

4:要求用户输入验证邮箱,通过javascript代码验证邮箱格式是否正确

//邮箱验证

function funmail(){

var mail=document.form1.qq.value;

var re=/^[\w-]+(\.[\w]+)*@([\w-]+\.)+[a-zA-z]{2,7}$/;

if(mail==""){

document.getElementById("sp3").innerHTML="邮箱不能为空";

return false;

}

else if(!mail.match(re)){

document.getElementById("sp3").innerHTML="邮箱格式不正确";

//alert("这个不是电子邮件");

return false;

}

else{

document.getElementById("sp3").innerHTML="";

return true;

}

}

</script>

5:要求页面实现验证码功能,点击“注册”按钮后,无论是否完成注册,验证码都能够自动刷新

<script>

function validteCode()

{

var codes = new Array(4);       //

var colors = new Array("Red","Green","Gray","Blue","Maroon","Aqua","Fuchsia","Lime","Olive","Silver");

for(var i=0;i < codes.length;i++)

{//

codes[i] = Math.floor(Math.random()*10);

}

var spans = document.getElementById("divCode").all;

for(var i=0;i<spans.length;i++)

{

spans[i].innerHTML=codes[i];

spans[i].style.color = colors[Math.floor(Math.random()*10)];    //

}

}

document.onload = validteCode();

</script>

实验结果:

按照实验要求完成本次大作业

完成一个较为完整的用户注册页面。

1:要求用户输入用户名时只能够输入英文、数字和下划线

这里用的是正则表达式,实现了上述的要求,当用户出现错误的操作时会给出相应的提示。

2:要求用户输入的密码和确认密码必须一致

将两次密码进行匹配用于验证

3:要求用户上传本地磁盘中的一个图片文件作为头像

用户可以选择本地一张图片上传作为自己的头像

4:要求用户输入验证邮箱,通过javascript代码验证邮箱格式是否正确

邮箱验证也用了正则表达式,可以判断邮箱格式是否正确

5:要求页面实现验证码功能,点击“注册”按钮后,无论是否完成注册,验证码都能够自动刷新

验证码可以实现验证后直接刷新

注册之前

注册之后

疑难小结:

经过了这次大作业的练习,对所学习的javascript知识有了一定的了解,学会了如何通过javascript语法、对象、事件、函数等来完成页面上的脚本代码。

完成了本实验的基本要求,并且理解了实现的过程,了解的了其中的基本原理,掌握了如何运用到实际的项目中去。完成:1:用户输入用户名时只能够输入英文、数字和下划线2:用户输入的密码和确认密码必须一致3:用户上传本地磁盘中的一个图片文件作为头像4:用户输入验证邮箱,通过javascript代码验证邮箱格式是否正确5:页面实现验证码功能,点击“注册”按钮后,无论是否完成注册,验证码都能够自动刷新

除此之外,我还总结了一些在操作中遇到的一些问题和小结:

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

用户输入用户名:

1、只允许输入数字

<input name="username" type="text" onkeyup="value=this.value.replace(/\D+/g,’’)">

2、只允许输入英文字母、数字和下划线(以下二种方法实现)

<input name="username" type="text" style="ime-mode:disabled">

<input name="username" type="text" onkeyup="value=value.replace(/[^\w\.\/]/ig,’’)">

3、只允许输入英文字母、数字和[email protected]#

<input name="username" type="text" onkeyup="value=value.replace(/[^\[email protected]#]|_/ig,’’)">

4、只允许输入汉字

<input name="username" type="text" onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,’’)">

主要算法和程序清单:

<html>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<head runat="server"></head>

<h1>用JavaScript实现信息注册</h1>

<script type="text/javascript">

function init(){

document.form1.username.focus();

}

function blu(){

var space=document.form1.username.value;

//var str = /^[\u4E00-\u9FA5\uf900-\ufa2d\w]/;

var str = /\w[a-zA-Z0-9_]*/;

if(space==""){

var sp=document.getElementById("sp").innerHTML="用户不能为空";

}

else if(!space.match(str)){

document.getElementById("sp").innerHTML="只能够输入英文、数字和下划线";

//alert("只能够输入英文、数字和下划线");

return false;

}

else

{

document.getElementById("sp").innerHTML="";

}

}

//输入密码,并判断密码是否一致

function funpsd(){

var psd=document.form1.psd.value

if(psd==""){

document.getElementById("sp1").innerHTML="密码不能为空";

}

else if(psd.length<6 || psd.length>15){

document.getElementById("sp1").innerHTML="密码不能小于6位或不能大于15位";

}

else if(isNaN(psd)){

document.getElementById("sp1").innerHTML="密码必须是数字";

}

else {

document.getElementById("sp1").innerHTML="";

}

}

function funcpsd(){

var psd1=document.form1.psd.value;

var psd2=document.form1.cpsd.value;  //变量赋值在前

if(psd1!=psd2){

document.getElementById("sp2").innerHTML="密码不一致,请重新输入";

document.form1.psd.select();

//psd2="" //把变量清空,但document.form1.cpsd.value还是原来的值,并没有清空document.form1.cpsd.value的值

document.form1.cpsd.value="";

}

else{

document.getElementById("sp2").innerHTML="";

}

}

//邮箱验证

function funmail(){

var mail=document.form1.qq.value;

var re=/^[\w-]+(\.[\w]+)*@([\w-]+\.)+[a-zA-z]{2,7}$/;

if(mail==""){

document.getElementById("sp3").innerHTML="邮箱不能为空";

return false;

}

else if(!mail.match(re)){

document.getElementById("sp3").innerHTML="邮箱格式不正确";

//alert("这个不是电子邮件");

return false;

}

else{

document.getElementById("sp3").innerHTML="";

return true;

}

}

</script>

<body onload="init();"  onload="startTime()" id="a">

<div id="txt"></div>

<form name="form1" method="post" action="">

<div>

<label for="username">

用户:<input type="text" name="username" id="username" onblur="blu();"  value="" /><span id="sp"></span>

</label>

</div>

<div>

<label for="psd1">

密码:<input type="password" name="psd" id="psd1" onblur="funpsd();"  value="" /><span id="sp1"></span>

</label>

</div>

<div>

<label for="cpsd1">

确认密码:<input type="password" name="cpsd" id="cpsd1" onblur="funcpsd();" value="" /><span id="sp2"></span>

</label>

</div>

<div>

<label for="sex">

性别:<input type="radio" name="sex" value="男" checked="checked">男<input type="radio" name="sex" value="女">女

</label>

</div>

<div>

年龄:

<select name="sel">

<option value="18">18</option>

<option value="19">19</option>

<option value="20">20</option>

<option value="21">21</option>

<option value="22">22</option>

<option value="23">23</option>

<option value="24">24</option>

<option value="25">25</option>

<option value="26">26</option>

<option value="27">27</option>

<option value="28">28</option>

<option value="29">29</option>

<option value="30">30</option>

<option value="31">31</option>

<option value="32">32</option>

<option value="33">33</option>

</select>

</div>

<div>

Mail:<input type="text" value="" name="qq" onblur="funmail();" /><span id="sp3"></span>

</div>

</form>

<style type="text/css">

#preview{width:180px;height:180px;border:1px solid #000;overflow:hidden;}

#imghead {filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=image);}

</style>

<script type="text/javascript">

//图片上传预览    IE是用了滤镜。

function previewImage(file)

{

var MAXWIDTH  = 180;

var MAXHEIGHT = 180;

var div = document.getElementById(‘preview‘);

if (file.files && file.files[0])

{

div.innerHTML =‘<img id=imghead>‘;

var img = document.getElementById(‘imghead‘);

img.onload = function(){

var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);

img.width  =  rect.width;

img.height =  rect.height;

//                 img.style.marginLeft = rect.left+‘px‘;

img.style.marginTop = rect.top+‘px‘;

}

var reader = new FileReader();

reader.onload = function(evt){img.src = evt.target.result;}

reader.readAsDataURL(file.files[0]);

}

else //兼容IE

{

var sFilter=‘filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale,src="‘;

file.select();

var src = document.selection.createRange().text;

div.innerHTML = ‘<img id=imghead>‘;

var img = document.getElementById(‘imghead‘);

img.filters.item(‘DXImageTransform.Microsoft.AlphaImageLoader‘).src = src;

var rect = clacImgZoomParam(MAXWIDTH, MAXHEIGHT, img.offsetWidth, img.offsetHeight);

status =(‘rect:‘+rect.top+‘,‘+rect.left+‘,‘+rect.width+‘,‘+rect.height);

div.innerHTML = "<div id=divhead style=‘width:"+rect.width+"px;height:"+rect.height+"px;margin-top:"+rect.top+"px;"+sFilter+src+"\"‘></div>";

}

}

function clacImgZoomParam( maxWidth, maxHeight, width, height ){

var param = {top:0, left:0, width:width, height:height};

if( width>maxWidth || height>maxHeight )

{

rateWidth = width / maxWidth;

rateHeight = height / maxHeight;

if( rateWidth > rateHeight )

{

param.width =  maxWidth;

param.height = Math.round(height / rateWidth);

}else

{

param.width = Math.round(width / rateHeight);

param.height = maxHeight;

}

}

param.left = Math.round((maxWidth - param.width) / 2);

param.top = Math.round((maxHeight - param.height) / 2);

return param;

}

</script>

<div id="preview">

<img id="imghead" border=0 src="1.gif" width="180" height="180" />

</div>

<input type="file" onchange="previewImage(this)" />

<form id="form1" runat="server">

<div id="abc">

<div id="divCode" style="background-color:White; width:52px; height:16px; padding:5px; text-align:center; vertical-align:middle; letter-spacing:5px; border:solid 1px blue"><span></span><span ></span><span ></span><span ></span></div>

</div>验证码:<input></input>

<div>

<input type="submit" value="注册" onclick="JavaScript:validteCode()"/>

<input type="reset" value="重置" />

</div>

</form>

</body>

</html>

<script>

function validteCode()

{

var codes = new Array(4);       //

var colors = new Array("Red","Green","Gray","Blue","Maroon","Aqua","Fuchsia","Lime","Olive","Silver");

for(var i=0;i < codes.length;i++)

{//

codes[i] = Math.floor(Math.random()*10);

}

var spans = document.getElementById("divCode").all;

for(var i=0;i<spans.length;i++)

{

spans[i].innerHTML=codes[i];

spans[i].style.color = colors[Math.floor(Math.random()*10)];    //

}

}

document.onload = validteCode();

</script>

时间: 2024-08-28 09:49:46

完成一个较为完整的用户注册页面的相关文章

超详细的php用户注册页面填写信息完整实例(附源码)

这篇文章主要介绍了一个超详细的php用户注册页面填写信息完整实例,内容包括邮箱自动匹配.密码强度验证以及防止表单重复等,小编特别喜欢这篇文章,推荐给大家. 注册页面是大多数网站必备的页面,所以很有必要对自己的注册页面做些精心的设计.下面三张图,第一张是注册的展示页面,第二张思维导图就一个简单的逻辑,第三张是通过firebug查看调用的JS文件. 一.给每个输入框写下说明 在用户看到这个输入框的时候,就能非常清晰的明白这个输入框是做啥用的,最大限度的降低他们产生疑惑的可能性.我们需要假设用户毫不了

使用HTML写一个完整的注册页面

在上一篇博客中,我简单地写了怎样通过使用HTML写一个简单的跳转登录页面,but,TMD太丑了,于是突发奇想+天马行空不如写一个完整注册页面和流程,呵呵,不废话直接上代码. 首先是第一个页面testlogin,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>登录</title>     <link href="tes

盛世恒通网的用户注册页面

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2 <html> 3 <head> 4 <title> 盛世恒通网的用户注册页面 </title> 5 <meta http-equiv="content-type" con

一个比较完整的Inno Setup 安装脚本

一个比较完整的Inno Setup 安装脚本,增加了对ini文件设置的功能,一个安装包常用的功能都具备了. 1 [Setup] 2 ; 注: AppId的值为单独标识该应用程序. 3 ; 不要为其他安装程序使用相同的AppId值. 4 ; (生成新的GUID,点击 工具|在IDE中生成GUID.) 5 AppId={{A9861883-31C5-4324-BD9A-DC3271EEB675} 6 ;程序名 7 AppName=ISsample 8 ;版本号 9 AppVerName=ISsamp

学习ASP.NET MVC(五)——我的第一个ASP.NET MVC CURD页面

在上一篇文章中我们已经创建了实体类,在这一篇文章中,我将创建一个新的控制器类——BookController,使用BookController对Books表中的数据进行CURD操作的方法,并使用视图模板在浏览器中显示所查询到的书籍数据信息. 一.添加控制器类 在Visual Studio 的“解决方案资源管理器”中右键单击Controllers文件夹,并创建一个新的BookController控制器类.如下图. Visual Studio 会弹出一个“添加控制器”对话框(如下图). 在对话框中填

一个比较完整的Inno Setup 安装脚本(转)

一个比较完整的Inno Setup 安装脚本,增加了对ini文件设置的功能,一个安装包常用的功能都具备了.   [Setup] ; 注: AppId的值为单独标识该应用程序. ; 不要为其他安装程序使用相同的AppId值. ; (生成新的GUID,点击 工具|在IDE中生成GUID.) AppId={{A9861883-31C5-4324-BD9A-DC3271EEB675} ;程序名 AppName=ISsample ;版本号 AppVerName=ISsample 1.0.0.0 ;发布者名

iOS Swift 使用contentOffset让你的用户注册页面动起来

iOS中 .h // // ViewController.h // 使用contentOffset让你的用户注册页面动起来 // // Created by 黄权浩 on 15-1-4. // Copyright (c) 2015年 黄权浩. All rights reserved. // #import <UIKit/UIKit.h> @interface ViewController : UIViewController<UITextFieldDelegate> @proper

推荐:想了解一个项目完整测试流程,看这篇文章就OK了

推荐:想了解一个项目完整测试流程,看这篇文章就OK了 写在前面:本文来自真实企业测试人员的工作总结,用一个项目的进行流程为线索,记录每个阶段测试包含的内容及关注点. <ignore_js_op> 项目的测试流程大只包含的几个阶段:立项.需求评审.用例评审.测试执行.测试报告文档 一.立项后测试需要拿到的文档 1.需求说明书 2.原型图(及UI图) 3.接口文档 4.数据库字典(表的数量.缓存机制) 二.需求评审 参加人员:开发.测试及需求人员,由需求人员主持讲解. 为了会议的有效举行,测试及开

[从 0 开始的 Angular 生活]No.38 实现一个 Angular Router 切换组件页面(一)

前言 今天是进入公司的第三天,为了能尽快投入项目与成为团队可用的战力,我正在努力啃官方文档学习 Angular 的知识,所以这一篇文章主要是记录我如何阅读官方文档后,实现这个非常基本的.带导航的网页应用. 需求 需求大概是这样的: 开一个新的 Angular 项目,并且一开始选择加入 Router 功能 根组件是 AppComponent ,然后下方有三个子组件分别是 page1 page2 page3 可以在 AppComponent 内点击连结切换到这三个页面 参考文档: 路由与导航 Rou