📄 script.js
字号:
/***************************************************************************************
* @Title : JavaScript Document
* @Description : J-SYS-JAS JavaScript Document
* @Author : Toby.Win
* @version : 9.0
* @Copyright : (c)2003-2008 J-SYS All Rights Reserved
***************************************************************************************/
// 一般页面的常规变量定义
var All = document.all;
var echo = document.write;
//删除用户输入的空格
function delnbsp(strs)
{
var Finds=/ /g;
strs=strs+strs.replace(Finds,"");
return strs;
}
/**
* 字串相关 String
*/
/** 修剪字串前后的空格 Base 20030820 */
function trim(s) {
var count = s.length;
var st = 0; // start
var end = count-1; // end
if (s == "") return s;
while (st < count) {
if (s.charAt(st) == " ")
st ++;
else
break;
}
while (end > st) {
if (s.charAt(end) == " ")
end --;
else
break;
}
return s.substring(st,end + 1);
}
//检查是否为正确的电话号码
function isTel(checkStr){
var checkOK = "0123456789-/,()";
var allValid = true;
if (checkStr.length<1)
allValid=false;
for (i=0;i<checkStr.length;i++)
{
ch=checkStr.charAt(i);
for(j=0;j<checkOK.length;j++)
if(ch==checkOK.charAt(j))
break;
if(j==checkOK.length)
{
allValid = false;
break;
}
}
return allValid;
}
/**检查是否为有效字符串*/
function IsValidString(checkStr)
{
var checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
var allValid = true;
if (checkStr.length<1)
allValid=false;
for (i=0;i<checkStr.length;i++)
{
ch=checkStr.charAt(i);
for(j=0;j<checkOK.length;j++)
if(ch==checkOK.charAt(j))
break;
if(j==checkOK.length)
{
allValid = false;
break;
}
}
return allValid;
}
/** 测量有汉字时的字串实际长度,其中一个汉字占两个字符 Base 20030820 */
function len(s){
var length = 0;
var tmpArr = s.split("");
for (i = 0; i < tmpArr.length; i++){
if (tmpArr[i].charCodeAt(0) < 299)
length ++;
else
length += 2;
}
return length;
}
/** 是否为合法字串,指只包括字母,数字和_的字串 */
//edit by liujy2004-06-09 14:57:11
function isStr(s) {
if (s.length == 0) return false;
var regu = "^[0-9A-Za-z_]*$";
var re = new RegExp(regu);
//alert("ssss---s.search(re):"+s.search(re));
s = s.replace('@', '');
s = s.replace('.', '');
if (s.search(re) != -1)
return true;
else
{
if (isEmail(s)) return true;
else return false;
}
}
/** 测试是否为空,或是空格 */
function isNvl(s) {
return trim(s)==""?true:false;
}
//-------------------------------------------------------------------
/**
* EMail相关
*/
/** 检测Email是否合法 */
function checkMail(s){
if (s == "") return false;
invalidChars = " /:"; // 不合法字符
s = s.replace('(', '');
s = s.replace(')', '');
s = s.replace('(', '');
s = s.replace(')', '');
for (i=0; i < invalidChars.length; i++) {
invalidChar = invalidChars.charAt(i);
if (s.indexOf(invalidChar,0) != -1)
return false;
}
atPos = s.indexOf("@", 1);
if (atPos == -1)
return false;
periodPos = s.indexOf(".", atPos);
if (periodPos == -1)
return false;
if (periodPos + 3 > s.length)
return false;
return true;
}
/** 检测Email是否合法 */
/*
Mender:Toby.Win
Date:2004-05-26
Reason:以前的表达式检查ss@ss.hk或z@ss.com;s@dd.net时不能通过
*/
function isEmail(s) {
if (s.length > 100) return false;
if (s.indexOf("'")!=-1) return false;
s = s.replace('(', '');
s = s.replace(')', '');
s = s.replace('(', '');
s = s.replace(')', '');
var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*[_.0-9a-zA-Z]+))@([a-zA-Z0-9-]+[.])+(.+)$";
//{2}|net|NET|com|COM|gov|GOV|mil|MIL|org|ORG|edu|EDU|int|INT|cn|CN|cc|CC
var re = new RegExp(regu);
if (s.search(re) != -1)
return true;
else
return false;
}
//-------------------------------------------------------------------
/**
* 日期相关 Date
*/
/** 检测输入日期是否合法 kerne */
function checkDate(inputyear,inputmonth,inputday){
var nowdate = new Date();
var result;
var varleap_year;
result = true;
//alert('### yy='+inputyear+'--mm='+inputmonth+'--dd='+inputday);
if ((inputyear<1850) || (inputyear>2500) || (!isNum(inputyear))) result=false;
if ((inputmonth<1) || (inputmonth>12) || (!isNum(inputmonth))) result=false;
if ((inputday<1) || (inputmonth>31) || (!isNum(inputmonth))) result=false;
if ((((parseInt(inputyear)%4) == 0) && ((parseInt(inputyear)%100) != 0)) || ((parseInt(inputyear)%400) == 0)) {
if ((parseInt(inputmonth) == 2) && (parseInt(inputday) > 29)) result=false;
switch(parseInt(inputmonth)){
case 4:
if (parseInt(inputday) > 30) {
result = false;
break;
}
case 6:
if (parseInt(inputday)>30) {
result=false;
break;
}
case 9:
if (parseInt(inputday)>30) {
result=false;
break;
}
case 11:
if (parseInt(inputday)>30) {
result=false;
break;
}
}
} else {
switch(parseInt(inputmonth)) {
case 2:
if (parseInt(inputday)>28) {
result=false;
break;
}
case 4:
if (parseInt(inputday)>30) {
result=false;
break;
}
case 6:
if (parseInt(inputday)>30) {
result=false;
break;
}
case 9:
if (parseInt(inputday)>30) {
result=false;
break;
}
case 11:
if (parseInt(inputday)>30) {
result=false;
break;
}
}
}
//alert('result--'+result);
return result;
}
/**
*取任意一个日期的当月最大天数,如8月有31天
*@Param:合格的日期,如:new Date()
*@Return:当月最大天数
*/
function getDays(dDate)
{
var iYear = dDate.getFullYear();
var iMonth = dDate.getMonth()-1;
var iDay = dDate.getDate();
var dStart = new Date(iYear, iMonth, 1);
var dEnd = dateAdd("m", 1, dStart);
var iDays = dateDiff("d", dStart, dEnd);
var iStartDay = (dStart.getDay() + 1);
for (i = 1; i < 43; i++)
{
if ((i < iStartDay) || ((i - iStartDay + 1) > iDays)) null;
else var dayScount=(i - iStartDay + 1);
}
return parseInt(dayScount);
}
/**
*返回已添加指定时间间隔的日期
*@Param:sInterval时间单位
*@Param:iNumber要添加间隔数
*@Param:dDate标准的日期格式
*@Return:标准的日期格式
*/
function dateAdd(sInterval, iNumber, dDate)
{
dTemp = new Date(dDate);
if (dTemp == "NaN") dTemp = new Date();
switch (sInterval)
{
case "s" : //秒
return new Date(Date.parse(dTemp) + (1000 * iNumber));
case "n" : //分
return new Date(Date.parse(dTemp) + (60000 * iNumber));
case "h" : //小时
return new Date(Date.parse(dTemp) + (3600000 * iNumber));
case "d" : //天
return new Date(Date.parse(dTemp) + (86400000 * iNumber));
case "w" : //星期
return new Date(Date.parse(dTemp) + ((86400000 * 7) * iNumber));
case "m" : //月
return new Date(dTemp.getFullYear(), (dTemp.getMonth()) + iNumber, dTemp.getDate());
case "y" : //年
return new Date((dTemp.getFullYear() + iNumber), dTemp.getMonth(), dTemp.getDate());
}
}
/**
*返回两个日期之间的时间间隔
*@Param:sInterval时间单位
*@Param:dStart开始时间
*@Param:dEnd结束时间
*@Return:间隔数
*/
function dateDiff(sInterval, dStart, dEnd)
{
dStart = new Date(dStart);
if (dStart == "NaN") dStart = new Date();
dEnd = new Date(dEnd);
if (dEnd == "NaN") dEnd = new Date();
switch (sInterval)
{
case "s" : //秒
return parseInt((Date.parse(dEnd) - Date.parse(dStart)) / 1000);
case "n" : //分
return parseInt((Date.parse(dEnd) - Date.parse(dStart)) / 60000);
case "h" : //小时
return parseInt((Date.parse(dEnd) - Date.parse(dStart)) / 3600000);
case "d" : //天
iScrap = (Date.parse(dEnd) - Date.parse(dStart)) / 86400000
iScrap = iScrap + .1
return parseInt(iScrap);
case "w" : //星期
return parseInt((Date.parse(dEnd) - Date.parse(dStart)) / (86400000 * 7));
case "m" : //月
return (dEnd.getMonth() - dStart.getMonth());
case "y" : //年
return (dEnd.getFullYear() - dStart.getFullYear());
}
}
//-------------------------------------------------------------------
/**
* 电话号码相关
*/
/** 检查电话号码输入是否合法 */
function checkPhone(s){
if (s.length < 1) return false;
var tmpChar = "0123456789-/,()";
for (i = 0; i < s.length; i++) {
ch = s.charAt(i);
for(j = 0; j < tmpChar.length; j++) {
if (ch == tmpChar.charAt(j))
break;
if (j == tmpChar.length - 1)
return false;
}
}
return true;
}
/** 检查电话号码输入是否合法 Base 20030820 */
function isPhone(s) {
var regu = "^(([(0-9)]+)|([0-9-]+))(([0-9-]+)|([0-9]+))([0-9])$";
var re = new RegExp(regu);
if (s.search(re) != -1)
return true;
else
return false;
}
//-------------------------------------------------------------------
/**
* 选择相关 Form
*/
/**
* 对Form的多选框进行处理
* formName 表单名称
* elementName 元素名称
* mode A-全选,R-反选
* Base 20030821
*/
function selectAll(formName,elementName,mode){
var elements = document.getElementById(formName).elements;
for (var i=0; i<elements.length; i++){
alert("Element["+ i +"]Name.indexOf:" + elements[i].name.indexOf(elementName));
if ((elements[i].name).indexOf(elementName) != -1) {
switch (mode){
case "A": // 全选
elements[i].checked = true;
break
case "R": // 反选
if (elements[i].checked == true)
elements[i].checked = false;
else
elements[i].checked = true;
break;
}
}
}
}
/** 检测文本框或多选、单选框是否为空 */
function isEmpty(o) {
var tmpValue = o.value;
if (o.type=="text") {
if (tmpValue.length == 0)
return true;
else
return false;
} else if (o.type == "checkbox" || o.type == "radio")
return !o.checked;
}
/** 为下拉框增加选项,约定使用";"分隔,每组名与值用":"隔开 Base 20030821*/
function addOptions(selectNm,szOptValue,selectedOptVal) {
var oSelect = document.getElementById(selectNm);
var aOpt = szOptValue.split(";");
for (var i=oSelect.options.length; i > 0; i--)
oSelect.options[i] = null;
for (var j=0; j<aOptVal.length; j++){
var aOptTmp = aOpt[j].split(":");
oSelect.options[j] = new Option(aOptTmp[0],aOptTmp[1]);
if (oSelect.options[j].name == selectedOptVal)
oSelect.options[j].selected = true;
}
}
//-------------------------------------------------------------------
/**
* 数字相关
*/
/** 是否为数字 Base 20030821 */
function isNum(s) {
var regu = "^([0-9]*)$";
// var regu = "^([0-9]*[.0-9])$"; // 小数测试
var re = new RegExp(regu);
if (s.search(re) != -1)
return true;
else
return false;
}
/** 是否为数字 Base 20030821 */
function isDigital(s) {
var tmpChar = "0123456789";
if (s.length < 1) return false;
for (var i=0; i<s.length; i++){
ch = s.charAt(i);
for (var j=0; j<tmpChar.length; j++){
if (ch == tmpChar.charAt(i))
break;
if (j == tmpChar.length)
return false;
}
}
return true;
}
//-------------------------------------------------------------------
/**
* 选择单选框
* Author:tempnc
* Date:20031222
*/
function isChecked(inparam,val) {
if(inparam == val)
return "checked";
else
return "";
}
//根据varValue的值选中option Toby.Win Add 2004-06-28 17:16:35
function selectedOption(varObj,varValue)
{
if(typeof(varObj)=="object")
{
for(var i=0;i<varObj.length;i++)
{
if(varObj.options[i].value==varValue)
{
varObj.selectedIndex=i;
break;
}
}
}
}
//输出数字式下拉菜单项 Toby.Win Add 2004-06-28 17:16:35
function writeOption(varFrom,varTo)
{
for(var i=varFrom;i<=varTo;i++)
{
document.write("<option VALUE="+i+">"+i+"</option>");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -