// Description: Valid check for JavaScript
// Usage: <script type=text/javascript src=/check.js></script>
// Function Listing:
// function chkdate(yearStr, monthStr, dayStr)
// function chkdatestr(checkStr)
// function chkemail(checkStr)
// function chkfloat(checkStr)
// function chkinteger(checkStr)
// function chklength(checkStr)
// function chkname(checkStr)
// function chknegative(checkStr)
// function chknostring(checkStr, forbidStr)
// function chknumber(checkStr)
// function chkpasswd(checkStr)
// function chkphone(checkStr)
// function chkquot(checkStr)
// function chksafe(checkStr)
// function chkspace(checkStr)
// function chkstring(checkStr, checkOK)
// function trim(w)
// function trimform(TheForm)
//函数名:chkdate
//功能介绍:检查是否为合法日期
//参数说明:要检查的字符串年、月、日
//返 回 值:false:不是 true:是
function chkdate(yearStr, monthStr, dayStr) {
var checkOK = "1234567890";
if ( !chkstring(yearStr, checkOK) ||
!chkstring(monthStr, checkOK) ||
!chkstring(dayStr, checkOK) )
return(false);
testday = new Date();
testday.setFullYear(yearStr, monthStr-1, dayStr);
var tmpy = testday.getFullYear();
var tmpm = testday.getMonth() + 1;
var tmpd = testday.getDate();
if (tmpy == yearStr && tmpm == monthStr && tmpd == dayStr) {
return(true);
} else {
return(false);
}
}
//函数名:chkdateStr
//功能介绍:检查是否为合法日期
//参数说明:要检查的字符串YYYY-MM-DD
//返 回 值:false:不是 true:是
function chkdatestr(checkStr) {
var tmpy = "";
var tmpm = "";
var tmpd = "";
var checkCode = 0;
for (i=0; i<checkStr.length ;i++) {
ch = checkStr.charAt(i);
if (ch == '-') checkCode++;
if (checkCode > 2) return(false);
else if (checkCode == 0 && ch != '-') tmpy += ch;
else if (checkCode == 1 && ch != '-') tmpm += ch;
else if (checkCode == 2 && ch != '-') tmpd += ch;
}
if (chknumber(tmpy) && tmpy.length == 2) {
if (tmpy > 70) tmpy = "19" + tmpy;
else tmpy = "20" + tmpy;
}
return(chkdate(tmpy, tmpm, tmpd));
}
//函 数 名:chkemail
//功能介绍:检查是否为合法的Email Address
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
//校验规则:不能以.或@开头和/或结尾,不能包含1个以上@,形如*@(*.)*
function chkemail(checkStr) {
var checkOK = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@._-";
var allValid = false;
var checkCode = 0;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
if (ch == "@") {
if (checkCode == 0 && i > 0) {
checkCode = 1;
} else {
break;
}
}
if (ch == ".") {
if (i == 0 || i == checkStr.length - 1) {
break;
} else if (checkStr.charAt(i+1) == '.') {
break;
} else if (checkCode == 0) {
if (checkStr.charAt(i+1) == '@') {
break;
}
} else if (checkCode == 1) {
if (checkStr.charAt(i-1) == '@') {
break;
} else {
checkCode = 2;
}
}
}
chValid = false;
for (j = 0; j < checkOK.length; j++) {
if (ch == checkOK.charAt(j)) {
chValid = true;
break;
}
}
if (!chValid) break;
if (i == checkStr.length - 1 && checkCode == 2) {
allValid = true;
break;
}
}
return(allValid);
}
//函 数 名:chkfloat
//功能介绍:检查是否为小数
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
function chkfloat(checkStr) {
if (chknumber(checkStr) && checkStr.indexOf(".") >= 0) {
return(true);
} else {
return(false);
}
}
//函 数 名:chkinteger
//功能介绍:检查是否为数字
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
function chkinteger(checkStr) {
var checkOK = "0123456789+-";
var allValid = true;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
if (checkOK.indexOf(ch) == -1) {
allValid = false;
break;
}
if ((ch == '+' || ch == '-') && i > 0) {
allValid = false;
break;
}
}
return(allValid);
}
//函 数 名:chklength
//功能介绍:检查字符串的长度
//参数说明:要检查的字符串
//返 回 值:字节长度值
function chklength(checkStr) {
var n = 0;
for(i=0; i<checkStr.length; i++) {
chcode = checkStr.charCodeAt(i);
if (chcode >=0 && chcode <= 255) {
n++;
} else {
n += 2;
}
}
return(n);
}
//函 数 名:chkname
//功能介绍:检查是否符合名称要求
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
function chkname(checkStr) {
var forbidStr = "0123456789`~!@#$%^&*()_-+=|\\{}[];:,<>?/\"";
return(!chknostring(checkStr, forbidStr));
}
//函 数 名:chknegative
//功能介绍:检查是否为负数
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
function chknegative(checkStr) {
if (chknumber(checkStr) && checkStr.charAt(0) == '-') {
return(true);
} else {
return(false);
}
}
//函 数 名:chknostring
//功能介绍:检查是否含非法字符
//参数说明:要检查的字符串,合法的字符串集合
//返 回 值:false:不是 true:是
function chknostring(checkStr, forbidStr) {
var allValid = false;
if (typeof(checkStr) != "string" || typeof(forbidStr) != "string") return(false);
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
if (forbidStr.indexOf(ch) >= 0) {
allValid = true;
break;
}
}
return(allValid);
}
//函 数 名:chknumber
//功能介绍:检查是否为数字
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
function chknumber(checkStr) {
var checkOK = "0123456789.+-";
var allValid = true;
var checkCode = 0;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
if (checkOK.indexOf(ch) == -1) {
allValid = false;
break;
}
if ((ch == '+' || ch == '-') && i > 0) {
allValid = false;
break;
}
if (ch == '.') {
checkCode += 1;
if (checkCode > 1) {
allValid = false;
break;
}
}
}
return(allValid);
}
//函 数 名:chkpasswd
//功能介绍:检查是否符合密码要求
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
function chkpasswd(checkStr) {
var checkOK ="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-.";
return(chkstring(checkStr, checkOK));
}
//函 数 名:checkphone
//功能介绍:检查是否为电话号码
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
function chkphone(checkStr) {
var checkOK = "0123456789-()# ,;:";
return(chkstring(checkStr, checkOK));
}
//函 数 名:chkquot
//功能介绍:检查是否含有引号(单引号和/或双引号)
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
function chkquot(checkStr) {
var allValid = false;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
if (ch == "'" || ch == '"') {
allValid = true;
break;
}
}
return(allValid);
}
//函 数 名:chksafe
//功能介绍:检查是否含有&;`'\"|*?~<>^()[]{}$\n\r
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
function chksafe(checkStr) {
var allValid = true;
var forbidStr = new Array ("&", ";", "`", "'", "\"", "|", "*", "?", "~", "<", ">", "^", "(", ")", "[", "]", "{", "}", "$", "\n", "\r");
m = forbidStr.length;
n = checkStr.length;
for (i=0; i<m; i++) {
for (j=0; j<n; j++) {
ch1 = checkStr.charAt(j);
ch2 = forbidStr[i];
if (ch1 == ch2) {
allValid = false;
break;
}
}
}
return(allValid);
}
//函 数 名:chkspace
//功能介绍:检查是否含有空格
//参数说明:要检查的字符串
//返 回 值:false:不是 true:是
function chkspace(checkStr) {
var allValid = false;
for (i = 0; i < checkStr.length; i++) {
ch = checkStr.charAt(i);
if (ch == " " || ch == " ") {
allValid = true;
break;
在线相册系统
需积分: 0 118 浏览量
更新于2008-06-30
收藏 353KB RAR 举报
【在线相册系统】是一个基于JavaServer Pages(JSP)技术构建的应用程序,它允许用户在互联网上上传、查看、管理和分享他们的照片。这个系统的核心功能包括用户注册、登录、图片上传、相册创建、图片预览以及权限管理等。在JSP技术的支持下,开发者可以将动态内容与静态HTML页面结合,提供更高效、灵活的网页开发解决方案。
在描述中提到的“jsp做的在线相册系统”,意味着该系统主要使用JSP技术来处理服务器端的业务逻辑和视图渲染。JSP是Java平台上的一个标准,用于创建动态网页。它允许开发者在页面中嵌入Java代码,使得网页可以根据用户的请求动态生成内容。JSP的运行机制是将JSP页面转换为Servlet(Java的服务器端程序),然后由Servlet处理请求并生成响应。
**JSP核心技术点:**
1. **指令(Directives)**:比如`<%@page>`、`<%@include>`和`<%@taglib>`,它们用于设置整个页面的属性,包含其他文件,以及引入自定义标签库。
2. **脚本元素(Scriptlets)**: `<%...%>` 包裹的Java代码块,用于编写服务器端的逻辑代码。
3. **表达式(Expressions)**:`<%=...%>` 用于输出变量或表达式的值到页面上。
4. **声明(Declarations)**:`<%!...%>` 用于声明变量或方法,这些变量和方法可以在整个JSP页面中使用。
5. **动作(Actions)**:如`<jsp:include>`、`<jsp:forward>`、`<jsp:useBean>`等,它们用于执行特定的任务,如包含其他页面、转发请求、实例化Java对象等。
6. **EL(Expression Language)**:一种简洁的表达式语言,用于访问JavaBeans中的属性。
7. **JSTL(JavaServer Pages Standard Tag Library)**:一套标准标签库,提供了用于处理常见任务的标签,如循环、条件判断、XML处理等。
**在线相册系统的可能架构:**
1. **前端展示**:HTML、CSS和JavaScript负责用户界面的设计和交互,可能使用AJAX实现异步更新,提升用户体验。
2. **后端处理**:JSP页面作为控制器接收HTTP请求,调用相关的Java类(如DAO层和Service层)进行业务处理,然后返回响应数据。
3. **数据库存储**:通常使用关系型数据库如MySQL存储用户信息、照片元数据和权限设置等。
4. **会话管理**:通过session对象跟踪用户状态,实现登录验证和权限控制。
5. **安全性**:可能应用了HTTPS协议加密传输,防止数据被窃取;对上传文件进行安全检查,避免恶意代码注入。
6. **性能优化**:可能使用缓存技术(如Redis)减少数据库查询,提高响应速度;通过CDN分发静态资源,降低服务器压力。
在提供的压缩包文件名称“web1”中,我们可以推测这可能包含了整个Web应用的结构,包括JSP文件、CSS样式表、JavaScript脚本、图片资源、配置文件以及可能的Java源代码等。深入研究这些文件将揭示在线相册系统的具体实现细节。