一、验证类
1、数字验证内
1.1 整数
1.2 大于0的整数 (用于传来的ID的验证)
1.3 负整数的验证
1.4 整数不能大于iMax
1.5 整数不能小于iMin
2、时间类
2.1 短时间,形如 (13:04:06)
2.2 短日期,形如 (2003-12-05)
2.3 长时间,形如 (2003-12-05 13:04:06)
2.4 只有年和月。形如(2003-05,或者2003-5)
2.5 只有小时和分钟,形如(12:03)
3、表单类
3.1 所有的表单的值都不能为空
3.2 多行文本框的值不能为空。
3.3 多行文本框的值不能超过sMaxStrleng
3.4 多行文本框的值不能少于sMixStrleng
3.5 判断单选框是否选择。
3.6 判断复选框是否选择.
3.7 复选框的全选,多选,全不选,反选
3.8 文件上传过程中判断文件类型
4、字符类
4.1 判断字符全部由a-Z或者是A-Z的字字母组成
4.2 判断字符由字母和数字组成。
4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母
4.4 字符串替换函数.Replace();
5、浏览器类
5.1 判断浏览器的类型
5.2 判断ie的版本
5.3 判断客户端的分辨率
6、结合类
6.1 email的判断。
6.2 手机号码的验证
6.3 身份证的验证
二、功能类
1、时间与相关控件类
1.1 日历
1.2 时间控件
1.3 万年历
1.4 显示动态显示时钟效果(文本,如OA中时间)
1.5 显示动态显示时钟效果 (图像,像手表)
2、表单类
2.1 自动生成表单
2.2 动态添加,修改,删除下拉框中的元素
2.3 可以输入内容的下拉框
2.4 多行文本框中只能输入iMax文字。如果多输入了,自动减少到iMax个文字(多用于短信发送)
3、打印类
3.1 打印控件
4 事件类
4.1 屏蔽右键
4.2 屏蔽所有功能键
4.3 --> 和<-- F5 F11,F9,F1
4.4 屏蔽组合键ctrl+N
5、网页设计类
5.1 连续滚动的文字,图片(注意是连续的,两段文字和图片中没有空白出现)
5.2 html编辑控件类
5.3 颜色选取框控件
5.4 下拉菜单
5.5 两层或多层次的下拉菜单
5.6 仿IE菜单的按钮。(效果如rongshuxa.com的导航栏目)
5.7 状态栏,title栏的动态效果(例子很多,可以研究一下)
5.8 双击后,网页自动滚屏
6、树型结构。
6.1 asp+SQL版
6.2 asp+xml+sql版
6.3 java+sql或者java+sql+xml
7、无边框效果的制作
8、连动下拉框技术
9、文本排序
++++++++++++++++++++++++++++++++++++++++++++++++++++
一、验证类
1、数字验证内
1.1 整数
/^(-|/+)?/d+$/.test(str)
1.2 大于0的整数 (用于传来的ID的验证)
/^/d+$/.test(str)
1.3 负整数的验证
/^-/d+$/.test(str)
2、时间类
2.1 短时间,形如 (13:04:06)
function isTime(str)
{
var a = str.match(/^(/d{1,2})(:)?(/d{1,2})/2(/d{1,2})$/);
if (a == null) {alert('输入的参数不是时间格式'); return false;}
if (a[1]>24 || a[3]>60 || a[4]>60)
{
alert("时间格式不对");
return false
}
return true;
}
2.2 短日期,形如 (2003-12-05)
function strDateTime(str)
{
var r = str.match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/);
if(r==null)return false;
var d= new Date(r[1], r[3]-1, r[4]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}
2.3 长时间,形如 (2003-12-05 13:04:06)
function strDateTime(str)
{
var reg = /^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/;
var r = str.match(reg);
if(r==null)return false;
var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
}
2.4 只有年和月。形如(2003-05,或者2003-5)
2.5 只有小时和分钟,形如(12:03)
3、表单类
3.1 所有的表单的值都不能为空
3.2 多行文本框的值不能为空。
3.3 多行文本框的值不能超过sMaxStrleng
3.4 多行文本框的值不能少于sMixStrleng
3.5 判断单选框是否选择。
3.6 判断复选框是否选择.
3.7 复选框的全选,多选,全不选,反选
3.8 文件上传过程中判断文件类型
4、字符类
4.1 判断字符全部由a-Z或者是A-Z的字字母组成
4.2 判断字符由字母和数字组成。
4.3 判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母
/^([a-zA-z_]{1})([/w]*)$/g.test(str)
4.4 字符串替换函数.Replace();
5、浏览器类
5.1 判断浏览器的类型
window.navigator.appName
5.2 判断ie的版本
window.navigator.appVersion
5.3 判断客户端的分辨率
window.screen.height; window.screen.width;
6、结合类
6.1 email的判断。
function ismail(mail)
{
return(new RegExp(/^/w+((-/w+)|(/./w+))*/@[A-Za-z0-9]+((/.|-)[A-Za-z0-9]+)*/.[A-Za-z0-9]+$/).test(mail));
}
6.2 手机号码的验证
6.3 身份证的验证
function isIdCardNo(num)
{
if (isNaN(num)) {alert("输入的不是数字!"); return false;}
var len = num.length, re;
if (len == 15)
re = new RegExp(/^(/d{6})()?(/d{2})(/d{2})(/d{2})(/d{3})$/);
else if (len == 18)
re = new RegExp(/^(/d{6})()?(/d{4})(/d{2})(/d{2})(/d{3})(/d)$/);
else {alert("输入的数字位数不对!"); return false;}
var a = num.match(re);
if (a != null)
{
if (len==15)
{
var D = new Date("19"+a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
else
{
var D = new Date(a[3]+"/"+a[4]+"/"+a[5]);
var B = D.getFullYear()==a[3]&&(D.getMonth()+1)==a[4]&&D.getDate()==a[5];
}
if (!B) {alert("输入的身份证号 "+ a[0] +" 里出生日期不对!"); return false;}
}
return true;
}
4 事件类
4.1 屏蔽右键
在body标签里加上οncοntextmenu=self.event.returnValue=false
4.2 屏蔽所有功能键
4.3 --> 和<-- F5 F11,F9,F1
4.4 屏蔽组合键ctrl+N
3.8 文件上传过程中判断文件类型
画图:
写注册表:
TABLAE相关(客户端动态增加行列)
呵呵,黄蓉也来了,我也来补充一个.
1.身份证严格验证:
2.验证IP地址
3.加sp1后还能用的无边框窗口!!
电话号码的验证
要求:
(1)电话号码由数字、"("、")"和"-"构成
(2)电话号码为3到8位
(3)如果电话号码中包含有区号,那么区号为三位或四位
(4)区号用"("、")"或"-"和其他部分隔开
(5)移动电话号码为11或12位,如果为12位,那么第一位为0
(6)11位移动电话号码的第一位和第二位为"13"
(7)12位移动电话号码的第二位和第三位为"13"
根据这几条规则,可以与出以下正则表达式:
(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)
具有在输入非数字字符不回显的效果,即对非数字字符的输入不作反应。
function numbersonly(field,event){
var key,keychar;
if(window.event){
key = window.event.keyCode;
}
else if (event){
key = event.which;
}
else{
return true
}
keychar = String.fromCharCode(key);
if((key == null)||(key == 0)||(key == 8)||(key == 9)||(key == 13)||(key == 27)){
return true;
}
else if(("0123456789.").indexOf(keychar)>-1){
window.status = "";
return true;
}
else {
window.status = "Field excepts numbers only";
return false;
}
}
有时候还需要自由编辑表格---
给大家一个自由编辑表格的小例子,写的有点乱,呵呵:)
//===============================start================================
自由编辑表格 | ||
单击开始编辑按钮,然后点击各单元格编辑 | 2 | 3 |
4 | 5 | 6 |
one | two | three |
four | five | six |
str=document.RegExpDemo.txtIP.value;
if(/^(/d{1,3})/.(/d{1,3})/.(/d{1,3})/.(/d{1,3})$/.test(str)==false)
{
window.alert('错误的IP地址格式');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
if(RegExp.$1<1 || RegExp.$1>254||RegExp.$2<0||RegExp.$2>254||RegExp.$3<0||RegExp.$3>254||RegExp.$4<1||RegExp.$4>254)
{
window.alert('错误的IP地址');
document.RegExpDemo.txtIP.select();
document.RegExpDemo.txtIP.focus();
return;
}
//剔除 如 010.020.020.03 前面 的0
var str=str.replace(/0(/d)/g,"$1");
str=str.replace(/0(/d)/g,"$1");
window.alert(str);
在每个文本框的onblur事件中调用校验代码,并且每个文本框中onKeyDown事件中写一个enter转tab函数
//回车键换为tab
function enterToTab()
{
if(event.srcElement.type != 'button' && event.srcElement.type != 'textarea'
&& event.keyCode == 13)
{
event.keyCode = 9;
}
}
<%
'********************************************
'函数功能:正则表达式校验
'参数patrn:要校验的类型
' "User" - 用户名
' "Truename" - 英文姓名
' "Passwd" - 密码
' "Tel" - 电话/传真
' "Mobil" - 手机
' "Date" - 日期(格式:yyyy-mm-dd)
' "Email" - 电子邮件
' "Postalcode" - 邮政编码
' "Search" - 搜索关键字
' "Int" - 整数
'参数strng:要校验的字串
'返回值:校验结果,正确返回true,错误返回false
'********************************************
Function IsVerify(patrn,strng)
strng=Trim(strng)
Select Case patrn
Case "User" '用户名
patrn="^[a-z]{1}([a-z0-9]|[._]){2,19}$"
Case "Truename" '英文姓名
patrn="^[a-zA-Z]{1,30}$"
Case "Passwd" '密码
patrn="^(/w){6,20}$"
Case "Tel" '电话/传真
patrn="^[+]{0,1}(/d){1,3}[ ]?([-]?((/d)|[ ]){1,12})+$"
Case "Mobil" '手机
patrn="^(/d)+[-]?(/d){6,12}$"
Case "Date" '日期(格式:yyyy-mm-dd)
patrn="^[12]{1}(/d){3}[-][01]?(/d){1}[-][0123]?(/d){1}$"
Case "Email" '电子邮件
patrn="^((/w)|[-]|[.])+@(((/w)|[-])+[.])+[a-z]{2,4}$"
Case "Postalcode" '邮政编码
patrn="^[a-z0-9 ]{3,12}$"
Case "Search" '搜索关键字
patrn="^[^`~!@#$%^&*()+=|///[/]/{/}:;/'/,.<>/?]{1}[^`~!@$%^&()+=|///[/]/{/}:;/'/,.<>?]{0,19}$"
Case "Int" '整数
patrn="^[1-9]{1}[0-9]{0,6}$"
Case "Array"
patrn="^[0-9]{1}([0-9]|[/,]){0,150}$"
End Select
Dim regEx
Dim Match
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
Matches = regEx.test(strng)
IsVerify = Matches
Set regEx = Nothing
End Function
'********************************************
'函数功能:对输入框的特殊字串进行过滤保存
'参数strPass:过滤前的字符串
'返回值:过滤后的字符串
'********************************************
Function SQLencode(byVal strPass)
strPass = Replace(strPass, "&", "&")
strPass = Replace(strPass, "<", "<")
strPass = Replace(strPass, ">", ">")
strPass = Replace(strPass, """", """)
strPass = Replace(strPass, "'", "'")
strPass = Replace(strPass, " ", " ")
strPass = Replace(strPass,chr(13)&chr(10),"
")
SQLencode = strPass
End Function
'********************************************
'函数功能:对SQLencode函数过滤后的字符串进行还原
'参数strPass:经过过滤后的字符串
'返回值:还原的过滤前的字符串
'********************************************
Function SQLdecode(byVal strPass)
If Not isNull(strPass) Then
strPass = Replace(strPass, "<", "<")
strPass = Replace(strPass, ">", ">")
strPass = Replace(strPass, ""","""" )
strPass = Replace(strPass, "'","'" )
strPass = Replace(strPass,"
",chr(13)&chr(10))
End If
SQLdecode = strPass
End Function
'********************************************
'函数功能:生成随机密码(字符为数字与大小写字母集合)
'参数length:密码长度
'返回值:随机密码
'********************************************
Function random(length)
Dim n,str
rnds=""
Randomize
For i=1 To length
n=Int(75*Rnd+48)
If (n>57 and n<65) Or (n>90 and n<97) Then
i=i-1
Else
rnds=rnds&Chr(n)
End If
Next
random=rnds
End Function
'********************************************
'函数功能:对密码进行加密/解密(最大长度为15位)
'********************************************
Function Encrypt(preString)
Dim pwds,s
pwds=""
s=Left(preString,15)
For i=1 To Len(s)
seed=170-Asc(Mid(s,i,1))-i
pwds=pwds & Chr(seed)
Next
Encrypt=pwds
End Function
'********************************************
'函数功能:格式化当前时间字串
'参数:无
'返回值:返回当前时间的纯数字字符串方式的表示(例如:当前时间2001-10-3 2:34:6,返回字符串"20011003023406")
'********************************************
Function TheDate()
y=year(date())
m=month(date())
d=day(date())
h=Hour(time())
n=Minute(time())
s=Second(time())
If Len(m)=1 Then m="0"&m
If Len(d)=1 Then d="0"&d
If Len(h)=1 Then h="0"&h
If Len(n)=1 Then n="0"&n
If Len(s)=1 Then s="0"&s
thedate=y&m&d&h&n&s
End Function
'********************************************
'函数功能:返回字符串的长度
'参数:字符串
'返回值:字符串长度
'********************************************
Function strLen(str)
dim p_len
p_len=0
strlen=0
if trim(str)<>"" then
p_len=len(trim(str))
for xx=1 to p_len
if asc(mid(str,xx,1))<0 then
strlen=int(strlen) + 2
else
strlen=int(strlen) + 1
end if
next
end if
End Function
'********************************************
'函数功能:发送邮件通知
'参数:字符串
'返回值:成功/失败
'********************************************
Function SendMail(ToAddress, Subject, Body)
On Error Resume Next
Set objMail = Server.CreateObject("JMail.Message")
objMail.From = ADR_Email
objMail.FromName = "ADR管理中心"
objMail.Subject = Subject
objMail.AddRecipient ToAddress
objMail.Body = Body
If objMail.Send("") Then
SendMail = True
Else
SendMail = False
End If
If Err.Number<> 0 Then SendMail = False
Set objMail = Nothing
On Error Goto 0
End Function
%>
自己写的一个比较丑的程序,但做报表时候有用
/********************************************************************
时间:2003.7.31
作者:周长武
功能:将阿拉伯数字(小写)转化成中文(大写)
参数:Num为字符型,小数点之后保留两位,例:Arabia_to_Chinese("1234.06")
说明:1.目前本转换仅支持到 拾亿(元) 位,金额单位为元,不能为万元,最小单位为分
2.不支持负数
修改区
时间:
修改人:
原因:
修改区结束
********************************************************************/
function Arabia_to_Chinese(Num){
for(i=Num.length-1;i>=0;i--)
{
Num = Num.replace(",","")//替换tomoney()中的“,”
Num = Num.replace(" ","")//替换tomoney()中的空格
}
Num = Num.replace("¥","")//替换掉可能出现的¥字符
if(isNaN(Num)) { //验证输入的字符是否为数字
alert("请检查小写金额是否正确");
return;
}
//---字符处理完毕,开始转换,转换采用前后两部分分别转换---//
part = String(Num).split(".");
newchar = "";
//小数点前进行转化
for(i=part[0].length-1;i>=0;i--){
if(part[0].length > 10){ alert("位数过大,无法计算");return "";}//若数量超过拾亿单位,提示
tmpnewchar = ""
perchar = part[0].charAt(i);
switch(perchar){
case "0": tmpnewchar="零" + tmpnewchar ;break;
case "1": tmpnewchar="壹" + tmpnewchar ;break;
case "2": tmpnewchar="贰" + tmpnewchar ;break;
case "3": tmpnewchar="叁" + tmpnewchar ;break;
case "4": tmpnewchar="肆" + tmpnewchar ;break;
case "5": tmpnewchar="伍" + tmpnewchar ;break;
case "6": tmpnewchar="陆" + tmpnewchar ;break;
case "7": tmpnewchar="柒" + tmpnewchar ;break;
case "8": tmpnewchar="捌" + tmpnewchar ;break;
case "9": tmpnewchar="玖" + tmpnewchar ;break;
}
switch(part[0].length-i-1){
case 0: tmpnewchar = tmpnewchar +"元" ;break;
case 1: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
case 2: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
case 3: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
case 4: tmpnewchar= tmpnewchar +"万" ;break;
case 5: if(perchar!=0)tmpnewchar= tmpnewchar +"拾" ;break;
case 6: if(perchar!=0)tmpnewchar= tmpnewchar +"佰" ;break;
case 7: if(perchar!=0)tmpnewchar= tmpnewchar +"仟" ;break;
case 8: tmpnewchar= tmpnewchar +"亿" ;break;
case 9: tmpnewchar= tmpnewchar +"拾" ;break;
}
newchar = tmpnewchar + newchar;
}
//小数点之后进行转化
if(Num.indexOf(".")!=-1){
if(part[1].length > 2) {
alert("小数点之后只能保留两位,系统将自动截段");
part[1] = part[1].substr(0,2)
}
for(i=0;i
perchar = part[1].charAt(i)
switch(perchar){
case "0": tmpnewchar="零" + tmpnewchar ;break;
case "1": tmpnewchar="壹" + tmpnewchar ;break;
case "2": tmpnewchar="贰" + tmpnewchar ;break;
case "3": tmpnewchar="叁" + tmpnewchar ;break;
case "4": tmpnewchar="肆" + tmpnewchar ;break;
case "5": tmpnewchar="伍" + tmpnewchar ;break;
case "6": tmpnewchar="陆" + tmpnewchar ;break;
case "7": tmpnewchar="柒" + tmpnewchar ;break;
case "8": tmpnewchar="捌" + tmpnewchar ;break;
case "9": tmpnewchar="玖" + tmpnewchar ;break;
}
if(i==0)tmpnewchar =tmpnewchar + "角";
if(i==1)tmpnewchar = tmpnewchar + "分";
newchar = newchar + tmpnewchar;
}
}
//替换所有无用汉字
while(newchar.search("零零") != -1)
newchar = newchar.replace("零零", "零");
newchar = newchar.replace("零亿", "亿");
newchar = newchar.replace("亿万", "亿");
newchar = newchar.replace("零万", "万");
newchar = newchar.replace("零元", "元");
newchar = newchar.replace("零角", "");
newchar = newchar.replace("零分", "");
if (newchar.charAt(newchar.length-1) == "元" || newchar.charAt(newchar.length-1) == "角")
newchar = newchar+"整"
return newchar;
}
//====================================表单类================================
// 文件上传过程中判断文件类型
/*
*/
//表单的值不能为空
function isNull(elem){
//var pattern=/^/s+|/s+$/;
if(elem.replace(/(^/s+|/s$)/g, "")==""){
return false;
}else{
return true;
}
}
//不能超过imax字符
function imax(elem){
if(elem.length>imax){
return false;
}else{
return true;
}
}
//不能少于imix字符
function imix(elem){
if(elem.length
}else{
return true;
}
}
//输入为中文判断
function isChinese(elem){
var pattern=/[^/x00-/xff]/g;
if(pattern.test(elem)){
//包含中文
return false;
}else{
//不包含中文
return true;
}
}
/* *********************************************************************************************************************
// =============================时间类========================================
//短时间(形如: 13:04:06)
//更具弹性的正则表达式:/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/
function isShortTime(elem){
var pattern=/^([0-9]{1,2})(:)([0-9]{1,2})(:)([0-9]{1,2})$/;
var temp=elem.match(pattern);
if(temp==null)
return false;
if(temp[1]>24)
return false;
if(temp[3]>60)
return false;
if(temp[5]>60)
return false;
return true;
}
//短日期(形如: 2003-12-18)
//更具弹性的正则表达式:/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/
function isShortDate(elem){
var pattern=/^(/d{4})(-)(/d{2})(-)(/d{2})$/;
var temp=elem.match(pattern);
if(temp==null){
return false;
}
//
var d=new Date(temp[1]+"/"+temp[3]+"/"+temp[5]);
return d.getFullYear()==temp[1]&&
(d.getMonth()+1)==temp[3]&&
d.getDate()==temp[5];
}
//长时间,形如(2003-12-18 13:04:06)
//更具弹性的正则表达示/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/
function isTime(elem){
var pattern=/^(/d{4})(-)(/d{2})(-)(/d{2})(/s+)(/d{2})(:)(/d{2})(:)(/d{2})$/;
var temp=elem.match(pattern);
if(temp==null) return false;
//date(year,month,date, hour,minutes,seconds)
var d=new Date(temp[1],temp[3]-1,temp[5],temp[7],temp[9],temp[11]);
return d.getFullYear()==temp[1]&&
(d.getMonth()+1)==temp[3]&&
d.getDate()==temp[5]&&
d.getHours()==temp[7]&&
d.getMinutes()==temp[9]&&
d.getSeconds()==temp[11];
}
//只有年月 形如: 2003-12
function isDate(elem){
var pattern=/^([0-9]{4}|[0-9]{2})-([0-9]{1,2})$/;
var temp=elem.match(pattern);
if(temp==null) return false;
//Date(year,month)
var d=new Date(temp[1],temp[2]-1);
return d.getYear()==temp[1]&&(d.getMonth()+1)==temp[2];
}
//只有小时与分 形如: 04:47
//timePat=/^([1-9]|1[0-2]):[0-5]d$/;
function isTM(elem){
var pattern=/^(/d{1,2})(-|//|:)(/d{1,2})$/;
var temp=elem.match(pattern);
if(temp==null) return false;
var hour=parseInt(temp[1]);
var mint=parseInt(temp[3]);
if(hour>24) return false;
if(hour<0) return false;
if(mint>60) return false;
if(mint<0) return false;
return true;
}
//判断leapYear (格式2003-12-18) (没有测试)
function isLeapYear(elem){
//选用上面的函数检验elem的有效性
if(isShortDate(elem)==false){
//输入的时间不格式不正确
return false;
}
var temp=elem.split("-");
var year=parseInt(temp[0]);
if((year%100)==0){
return (year%400)==0;
}else{
return (year%4)==0;
}
}
// *******************************************************结束时间类*******************************************
//======================================浏览器类=============================
//浏览器版本检测
//获取浏览器的名字Netscape或者Microsoft Internet Explorer
var browserName=navigator.appName;
//获取浏览器的版本信息
var browserVersion=parseInt(navigator.appVersion);
var browser;
if(browserName=="Netscape"&&browserVersion==5){
browser="nn6"; //netspace6
}
else if(browserName="Netscape"&&browserVersion==4){
browser="nn4"; //netspace4
}
else if(browserName="Microsoft Internet Explorer"&&
browserVersion==4&&navigator.appVersion.indexOf("MSIE 6.0")!=-1){
browser="ie6"; //IE 6.0
}
else if(browserName="Microsoft Internet Explorer"&&
browserVersion==4&&
navigator.appVersion.indexOf("MSIE 5.5")!=-1){
browser="ie55"; //IE5.5
}
else if(browserName="Microsoft Internet Explorer"&&
browserVersion==4&&
navigator.appVersion.indexOf("MSIE 5.0")!=-1){
browser="ie5"; //IE5.0
}
else if(browserName="Microsoft Internet Explorer"&&
browserVersion==4){
browser="ie4"; //IE4
}
/*
if(browser=="nn6"||browser=="ie6"||browser=="ie55"||browser="ie5"){
//不与高版本要求的代码
}else if(browser=="ie4"){
//不兼容nn4的代码
}else if(browser=="nn4"){
//不兼容ie4的代码
}
*/
/* *********************************end browser **************************** */
//判断操作平台是不是win98
function isWin98(){
if(navigator.appVersion.indexOf("98")!=-1){
return true;
}else{
//alert("你使用不是windows98操作系统");
return false;
}
}
//分辨率的检测
function redirectPage(){
//分辨率初始化
var size;
if(screen.width==640&&screen.height==480)
return size="640 x 480";
if(screen.width==800&&screen.height==600)
return size="800 x 600";
if(screen.width==1024&&screen.height==768)
return size="1024 x 768";
else
return size="640 x 480";
}
// /结束浏览器类///
发一个将阿拉伯数字转换成中文大写的函数:
function Chinese(num) //将阿拉伯数字翻译成中文的大写数字
{
if(!/^/d*(/./d*)?$/.test(num)){alert("Number is wrong!"); return "Number is wrong!";}
var AA = new Array("零","壹","贰","叁","肆","伍","陆","柒","捌","玖");
var BB = new Array("","拾","佰","仟","萬","億","点","");
var a = (""+ num).replace(/(^0*)/g, "").split("."), k = 0, re = "";
for(var i=a[0].length-1; i>=0; i--)
{
switch(k)
{
case 0 : re = BB[7] + re; break;
case 4 : if(!new RegExp("0{4}//d{"+ (a[0].length-i-1) +"}$").test(a[0]))
re = BB[4] + re; break;
case 8 : re = BB[5] + re; BB[7] = BB[5]; k = 0; break;
}
if(k%4 == 2 && a[0].charAt(i+2) != 0 && a[0].charAt(i+1) == 0) re = AA[0] + re;
if(a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k%4] + re; k++;
}
if(a.length>1) //加上小数部分(如果有小数部分)
{
re += BB[6];
for(var i=0; i }
return re;
}
//=================================字符串类===============================
//禁止全角
function isQj(elem){
//[/u4E00-/u9FA5]汉字﹐[/uFE30-/uFFA0]全角字符
var pattern=/[/uFE30-/uFFA0]/gi;
if(pattern.test(elem)){
//不为汉字
//alert("不能用全角");
//elem="";
return false;
}else{
//输入正常
return true;
}
}
//含有非法字符~!@%^&*();'/"?><[]{}//|,:/=+—“”‘
function havegg(elem){
var str = "~!@%^&*();'/"?><[]{}//|,:/=+—“”‘";
for(i=0;i
return false;
}
return true;
}
//由a-z和A-Z组成的字符串
function isStr(elem){
var pattern=/^[a-zA-Z]+$/;
if(pattern.test(elem)){
return true;
}else{
return false;
}
}
//由字符串和数字字符串组成
function isStrAndInt(elem){
var patten=/^[a-zA-Z0-9]+$/;
if(pattern.test(elem)){
return true;
}else{
return false;
}
}
//判断字符由字母和数字,下划线,点号组成.且开头的只能是下划线和字母
function isStrin(elem){
var pattern=/^(/b[a-zA-Z]|/b_)([a-zA-Z0-9]+(_|/.)?[a-zA-Z0-9]*)+$/;
if(pattern.test(elem)){
return true;
}else{
return false;
}
}
// 字符串完毕/
//============================数字类=========================================
//邮政编码
//要求:无地区规律,但都是6位数字,最大值为(西藏拉萨850000),最小值为(呼和浩特010000)
function isPost(elem){
var pattern=/^[0-9]{6}$/;
if(!pattern.test(elem)){
return false;
}else{
if(parseInt(elem)<10000||parseInt(elem)>850000){
return false;
}
return true;
}
}
//整数(可以带正负符号或者不带符号表正数)
function isInt(elem){
var pattern=/^(/-|+)?/d+$/;
if(!pattern.test(elem)){
return false;
}else{
return true;
}
}
//负数
function isNegative(elem){
var pattern=/^/b/-d+$/;
if(!pattern.test(elem)){
return false;
}else{
return true;
}
}
//数字字符
function isFigStr(elem){
var pattern=/^/d+$/;
if(!pattern.test(elem)){
return false;
}else{
return true;
}
}
//不大于imax,不小于imix的整数
function isScopeInt(elem){
var imax=80000;
var imix=100;
//判断elem是否为整数,向上参考
if(isInt(elem)==false){
//alert("elem不是整数");
return false;
}
if(parseInt(elem)>imax){
return false;
}
if(parseInt(elem)
}
return true;
}
// //数据类结束
//验证IP地址
function isIP3(elem){
var pattern=/(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)/.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])/;
if(pattern.test(elem)){
return true;
}else{
//alert("ip格式不正确");
return false;
}
}
// /end IP
//移动电话(手机)
//样式:13531214732或013531214732
function isMoveTel(elem){
var pattern=/^0{0,1}13[0-9]{9}$/;
if(pattern.test(elem)){
return true;
}else{
//elert("电话号码不正确");
return false;
}
}
//固定电话(小灵通。。。。家庭电话)
function isFixTel(elem){
var pattern=/(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)/;
if(pattern.test(elem)){
return true;
}else{
//alert("电话号码格式不正确");
return false;
}
}
//电话号码(以上二种)
function isTel(elem){
var pattern=/(^[0-9]{3,4}/-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^/([0-9]{3,4}/)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/;
if(pattern.test(elem)){
return true;
}else{
//elert("电话号码格式不正确");
return false;
}
}
自定以右键菜单。
义省份和城市名。[全+转]
右键级联菜单
/n";
HTMLstr += "/n";
HTMLstr += "/n";
HTMLstr += "
// rbpm = right button pop menu
HTMLstr += "
HTMLstr += "
HTMLstr += "";
HTMLstr += "/n";
HTMLstr += "/n";
}
function AddExtendMenu(id,name,parent)
{
var TempStr = "";
if(HTMLstr.indexOf("") != -1)
{
alert("E_"+id+"already exist!");
return;
}
eval("A_"+parent+".length++");
eval("A_"+parent+"[A_"+parent+".length-1] = id"); // 将此项注册到父菜单项的ID数组中去
TempStr += "/n";
TempStr += "
TempStr += "
TempStr += "
TempStr += "";
TempStr += "";
HTMLstr = HTMLstr.replace("",TempStr);
eval("A_"+id+" = new Array()");
TempStr = "";
TempStr += "/n";
TempStr += "
TempStr += " οnmοuseοver='P_OnMouseOver(/""+id+"/",/""+parent+"/")'";
TempStr += " οnmοuseοut='P_OnMouseOut(/""+id+"/",/""+parent+"/")'";
TempStr += " οnmοuseup=window.event.cancelBubble=true;";
TempStr += " οnclick=window.event.cancelBubble=true;";
TempStr += ">
TempStr += " "+name+"
TempStr += "
TempStr += "";
HTMLstr = HTMLstr.replace("",TempStr);
}
>
右键级联菜单2
function AddItem(id,name,parent,location)
{
var TempStr = "";
var ItemStr = "";
if(id == "sperator")
{
TempStr += ItemStr+"/n";
TempStr += "
TempStr += "";
HTMLstr = HTMLstr.replace("",TempStr);
return;
}
if(HTMLstr.indexOf(ItemStr) != -1)
{
alert("I_"+id+"already exist!");
return;
}
TempStr += ItemStr+"/n";
TempStr += "
TempStr += " οnmοuseοver='I_OnMouseOver(/""+id+"/",/""+parent+"/")'";
TempStr += " οnmοuseοut='I_OnMouseOut(/""+id+"/")'";
TempStr += " οnclick='window.event.cancelBubble=true;'";
if(location == null)
TempStr += " οnmοuseup='I_OnMouseUp(/""+id+"/",/""+parent+"/",null)'";
else
TempStr += " οnmοuseup='I_OnMouseUp(/""+id+"/",/""+parent+"/",/""+location+"/")'";
TempStr += ">
TempStr += " "+name+" ";
TempStr += "
TempStr += "";
HTMLstr = HTMLstr.replace("",TempStr);
}
function GetMenu()
{
return HTMLstr;
}
function I_OnMouseOver(id,parent)
{
var Item;
if(parent != "rbpm")
{
var ParentItem;
ParentItem = eval("P_"+parent);
ParentItem.className="over";
}
Item = eval("I_"+id);
Item.className="over";
HideAll(parent,1);
}
function I_OnMouseOut(id)
{
var Item;
Item = eval("I_"+id);
Item.className="out";
}
function I_OnMouseUp(id,parent,location)
{
var ParentMenu;
window.event.cancelBubble=true;
OnClick();
ParentMenu = eval("E_"+parent);
ParentMenu.display="none";
if(location == null)
eval("Do_"+id+"()");
else
window.open(location);
}
function P_OnMouseOver(id,parent)
{
var Item;
var Extend;
var Parent;
if(parent != "rbpm")
{
var ParentItem;
ParentItem = eval("P_"+parent);
ParentItem.className="over";
}
HideAll(parent,1);
Item = eval("P_"+id);
Extend = eval("E_"+id);
Parent = eval("E_"+parent);
Item.className="over";
Extend.style.display="block";
Extend.style.posLeft=document.body.scrollLeft+Parent.offsetLeft+Parent.offsetWidth-4;
if(Extend.style.posLeft+Extend.offsetWidth > document.body.scrollLeft+document.body.clientWidth)
Extend.style.posLeft=Extend.style.posLeft-Parent.offsetWidth-Extend.offsetWidth+8;
if(Extend.style.posLeft < 0) Extend.style.posLeft=document.body.scrollLeft+Parent.offsetLeft+Parent.offsetWidth;
Extend.style.posTop=Parent.offsetTop+Item.offsetTop;
if(Extend.style.posTop+Extend.offsetHeight > document.body.scrollTop+document.body.clientHeight)
Extend.style.posTop=document.body.scrollTop+document.body.clientHeight-Extend.offsetHeight;
if(Extend.style.posTop < 0) Extend.style.posTop=0;
}
function P_OnMouseOut(id,parent)
{
}
function HideAll(id,flag)
{
var Area;
var Temp;
var i;
if(!flag)
{
Temp = eval("E_"+id);
Temp.style.display="none";
}
Area = eval("A_"+id);
if(Area.length)
{
for(i=0; i < Area.length; i++)
{
HideAll(Area[i],0);
Temp = eval("E_"+Area[i]);
Temp.style.display="none";
Temp = eval("P_"+Area[i]);
Temp.className="out";
}
}
}
document.οnmοuseup=OnMouseUp;
document.οnclick=OnClick;
function OnMouseUp()
{
if(window.event.button == 2)
{
var PopMenu;
PopMenu = eval("E_rbpm");
HideAll("rbpm",0);
PopMenu.style.display="block";
PopMenu.style.posLeft=document.body.scrollLeft+window.event.clientX;
PopMenu.style.posTop=document.body.scrollTop+window.event.clientY;
if(PopMenu.style.posLeft+PopMenu.offsetWidth > document.body.scrollLeft+document.body.clientWidth)
PopMenu.style.posLeft=document.body.scrollLeft+document.body.clientWidth-PopMenu.offsetWidth;
if(PopMenu.style.posLeft < 0) PopMenu.style.posLeft=0;
if(PopMenu.style.posTop+PopMenu.offsetHeight > document.body.scrollTop+document.body.clientHeight)
PopMenu.style.posTop=document.body.scrollTop+document.body.clientHeight-PopMenu.offsetHeight;
if(PopMenu.style.posTop < 0) PopMenu.style.posTop=0;
}
}
function OnClick()
{
HideAll("rbpm",0);
}
// Add Your Function on following
function Do_viewcode(){window.location="view-source:"+window.location.href;}
function Do_help(){window.showHelp(window.location);}
function Do_exit() {window.close();}
function Do_refresh() {window.location.reload();}
function Do_back() {history.back();}
function Do_forward() {history.forward();}
function Do_author(){alert("姓名:杨俊/n网名:风舞影天(Snwcwt)/nE_mail:snwcwt.com@263.net/n个人主页:http://202.115.147.160/snwcwt(正在制作中)/n")}
-->
右键级联菜单3(同一ID不能回复三次,只好用马甲了^_^)
//************************************************
//此处插入以上代码
//************************************************
【1、最基本的弹出窗口代码】
其实代码非常简单:
因为这是一段javascripts代码,所以它们应该放在
参数解释:
js脚本结束
【3、用函数控制弹出窗口】
下面是一个完整的代码:
【5、主窗口打开文件1.htm,同时弹出小窗口page.html】
如下代码加入主窗口
还有这个,用来保存用户习惯设置的
function savebehavior()
var oPersist=oPersistValue;
oPersist.setAttribute("sPersistText",0);
oPersist.save("oNoteWindowCount");
oPersist.load("oFolderBehavior");
if (oPersist.getAttribute("sPersistText")!=null)
{
oPersist.value=oPersist.getAttribute("sPersistText");
aFolderState=decodeBuddyIndexList(oPersistValue.value);
}//end
}
可以输入的SELECT
inputAndDrop.htm
可以输入的SELECT (2)
inputAndDrop.htc
table里的内容超长,自动切除并+ “...”
"http://www.w3.org/TR/html4/loose.dtd">
s | ||
d |
加入style="table-layout:fixed"
"http://www.w3.org/TR/html4/loose.dtd">
s | ||
d |