标题:
[转载]
一些JS代码。
[打印本页]
作者:
chinanic
时间:
2007-8-24 09:10
标题:
一些JS代码。
<script language="JavaScript">
<!--
function newWindow(strUrl, strName, nWidth, nHeight)
{
var strFeature ;
strFeature = "HEIGHT=" + nHeight + ", WIDTH=" + nWidth ;
strFeature = strFeature + " left=0 top=0 toolbar=no,scrollbars=yes,menubar=no,resizable=yes,directories=no" ;
objWin = window.open(strUrl, strName, strFeature) ;
objWin.focus() ;
}
function openWindow(strUrl, strName, nLeft, nTop, nWidth, nHeight)
{
var strFeature ;
strFeature = "HEIGHT=" + nHeight + ", WIDTH=" + nWidth + " LEFT" + nLeft + " TOP=" + nTop;
strFeature = strFeature + " toolbar=yes,scrollbars=yes,menubar=no,resizable=yes,directories=no" ;
objWin = window.open(strUrl, strName, strFeature) ;
objWin.focus() ;
}
function showAlert(strMsg)
{
window.alert(strMsg) ;
}
function doConfirm(strMsg)
{
return window.confirm(strMsg) ;
}
function setFocus(objControl)
{
var objCtrl = eval(objControl) ;
window.focus();
objCtrl.focus() ;
}
function goToUrl(objContain, strUrl)
{
objContain.location = strUrl ;
}
function goToUrlInFrame(strFrameName, strUrl)
{
parent.frames[strFrameName].location = strUrl ;
}
function isTextFieldNull(txtField)
{
if ((txtField.value == null) || (txtField.value == ""))
return true ;
else
return false ;
}
function verifyTextField(txtField, strAlert)
{
var bNull = false;
bNull = isTextFieldNull(txtField) ;
if (bNull == true)
{
showAlert(strAlert) ;
setFocus(txtField) ;
}
return bNull ;
}
function getSelCount(objForm, strName)
{
var nCount = 0 ;
var nLen = 0 ;
var nIndex ;
var objElement ;
nLen = objForm.elements.length ;
for (nIndex=0; nIndex<nLen; nIndex++)
{
objElement = objForm.elements[nIndex] ;
if ((objElement.name == strName) && (objElement.checked == true))
nCount=nCount+1 ;
}
return nCount ;
}
function isInteger(strValue)
{
var nValue ;
//对输入参数为null的处理
if (strValue == null)
return false ;
//对其他情况的处理
nValue = parseInt(strValue) ;
if ( isNaN(nValue) )
return false ;
return true ;
}
function isFloat(strValue)
{
var fValue ;
//对输入参数为null的处理
if (strValue == null)
return false ;
//对其他情况的处理
fValue = parseFloat(strValue) ;
if ( isNaN(fValue) )
return false ;
return true ;
}
function compInteger(strValue1, strValue2)
{
var nValue1, nValue2 ;
//判断第一个参数的有效性
if (isInteger(strValue1) == false)
return -1 ;
//判断第二个参数的有效性
if (isInteger(strValue2) == false)
return -2 ;
//转换后比较
nValue1 = parseInt(strValue1) ;
nValue2 = parseInt(strValue2) ;
if (nValue1 > nValue2)
return 1 ;
if (nValue1 == nValue2)
return 0 ;
if (nValue1 < nValue2)
return 2 ;
}
function compFloat(strValue1, strValue2)
{
var fValue1, fValue2 ;
//判断第一个参数的有效性
if (isFloat(strValue1) == false)
return -1 ;
//判断第二个参数的有效性
if (isFloat(strValue2) == false)
return -2 ;
//转换后比较
fValue1 = parseFloat(strValue1) ;
fValue2 = parseFloat(strValue2) ;
if (fValue1 > fValue2)
return 1 ;
if (fValue1 == fValue2)
return 0 ;
if (fValue1 < fValue2)
return 2 ;
}
//函数名:fucCheckDate() (YYYY-MM-DD)
//功能介绍:检查是否为日期
//参数说明:要检查的字符串
//返回值:0:不是日期 1:是日期
function fucCheckDate(strDate)
{
var nLen, nIdx ;
var csplit, cflag ;
var arrSplit = new Array('-', '.', '/') ;
var strYear, strMonth, strDay, strTmp ;
//如果日期为null,认为是日期
if (strDate == null) return 1 ;
//如果长度不满足:8 -- 10,为非法日期
nLen = strDate.length ;
if (nLen < 8 || nLen > 10) return 0 ;
//判断是否存在分割符,并记录分割符
cflag = "" ;
for (nIdx=0; nIdx<arrSplit.length; nIdx++)
{
csplit = arrSplit[nIdx] ;
if (strDate.indexOf(csplit, 0) >= 0)
{
cflag = csplit ;
break ;
}
}
if ( cflag =="" ) //对没有分割符的处理
{
//如果长度<>8,为非法日期
if (nLen != 8)
return 0 ;
//截取日期中的年、月、日
strYear = strDate.substr(0,4) ;
strMonth = strDate.substr(4,2) ;
strDay = strDate.substr(6,2) ;
}
else //对存在分割符的处理
{
//截取日期中的年、月、日
strTmp = strDate ;
nIdx = strTmp.indexOf(cflag, 0) ;
strYear = strTmp.substr(0,nIdx) ;
strTmp = strTmp.substr(nIdx+1, strTmp.length - nIdx - 1) ;
nIdx = strTmp.indexOf(cflag, 0) ;
strMonth = strTmp.substr(0, nIdx) ;
strDay = strTmp.substr(nIdx+1, strTmp.length-nIdx-1) ;
if (strMonth.length < 2)
strMonth = "0" + strMonth ;
if (strDay.length < 2)
strDay = "0" + strDay ;
}
//判断年、月、日的合法性
if (strYear < '1900' || strYear > '9999' || strYear.length != 4)
return 0 ;
if (strMonth < '00' || strMonth > '12' || strMonth.length != 2)
return 0 ;
if (strDay < '00' || strDay > '31' || strDay.length != 2)
return 0 ;
//缺省为合法日期
return 1 ;
}
//函数名:fucCheckNUM()
//功能介绍:检查是否为数字
//参数说明:要检查的数字
//返回值:1为是数字,0为不是数字
function fucCheckNUM(NUM)
{
var i,j,strTemp;
strTemp="0123456789.";
if ( NUM.length == 0) return 0;
for (i=0;i<NUM.length;i++)
{
j = strTemp.indexOf(NUM.charAt(i));
if (j==-1)
{
//说明有字符不是数字
return 0;
}
}
//说明是数字
return 1;
}
/*************************************************************************
** 目的:
** 判断身份证件号码是否有效
** 参数:
** pszId : 表示身份证号码的字符串
** 返回值:
** 0 : 有效
** -1 : 无效
*************************************************************************/
function isPersonIdValid(pszId)
{
var nLen, nIndex, nRet ;
var strTmp ;
nRet = 0 ;
/*判断身份证的长度是否为18或15位*/
nLen = pszId.length ;
if ((nLen != 15) && (nLen != 18))
return (-1) ;
/*如果长度为15位,判断其各位是否为数字*/
if (nLen == 15)
{
for (nIndex=0; nIndex<nLen; nIndex++)
{
strTmp = pszId.charAt(nIndex) ;
if (( strTmp < '0') || (strTmp > '9'))
{
nRet = -1 ;
break ;
}
}
}
return (nRet) ;
}
/*************************************************************************
** 目的:
** 对身份证件号码进行15位到18位的转换
** 参数:
** pszId15 : 15位的身份证号码
** 返回值:
** 转换成18位后的身份证号码
*************************************************************************/
function convPersonId15To18(pszId15)
{
var nIndex, nLen ;
var nSum ;
var pszId18 ;
var nArrPower = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2) ;
var chArrCheck = new Array('1','0','X','9','8','7','6','5','4','3', '2') ;
/*如果已经为18位,直接返回*/
nLen = pszId15.length;
if (nLen == 18)
{
pszId18 = pszId15 ;
return pszId18 ;
}
/*如果不是15位,返回错误*/
if (nLen != 15)
{
pszId18 = pszId15 ;
return pszId18 ;
}
/*准备数据*/
pszId18 = pszId15.substr(0,6) ;
pszId18 = pszId18 + "19" ;
pszId18 = pszId18 + pszId15.substr(6,9) ;
/*计算最后一位*/
nSum = 0 ;
for (nIndex=0; nIndex<17; nIndex++)
{
nSum = nSum + ( parseInt(pszId18.charAt(nIndex)) * nArrPower[nIndex] ) ;
}
nIndex = nSum - (nSum / 11*11) ;
pszId18 = pszId18 + chArrCheck[nIndex] ;
return pszId18 ;
}
function changeFocus_onkeyup()
{
var key ;
key = window.event.keyCode ;
if (key == 0xD)
{
if ( window.event.srcElement.type == "text" ||
window.event.srcElement.type == "checkbox" ||
window.event.srcElement.type == "radio" ||
window.event.srcElement.type == "file" ||
window.event.srcElement.type == "select-one" ||
window.event.srcElement.type == "select-multiple"
)
window.event.keyCode = 9 ;
}
}
function check(field,ncount)
{
var regC = /[^ -~]+/g;
var regE = /\D+/g;
var str = field.value;
var ncount2=ncount*2;
if (regC.test(str)){
field.value = field.value.substr(0,ncount);
}
if(regE.test(str)){
field.value = field.value.substr(0,ncount2);
}
}
//取得str长度
function getStringLength(str)
{
var num=0;
if (str!="")
{
var i;
var s;
for(i=0;i<str.length;i++)
{
s=str.charCodeAt(i);
if(s-128<0) num=num+1;
else num=num+2;
}
}
return num;
}
//函数名:fucCheckIP()
//功能介绍:检查是否为IP
//参数说明:要检查的字符串
//返回值:0:不是 1:是
function fucCheckIP(a)
{
var va=a;
//中间有空格
if (a.indexOf(' ')!=-1)
{
alert(va+":IP中有空格");
return 0;
}
if (a.indexOf(".")==-1)
{
alert(va+":IP格式错误(***.***.***.***)");
return 0;
}
if(0 == a.indexOf("."))
{ alert(va+":IP格式错误(***.***.***.***)");
return 0;
}
//判断a 中的“.”是否多于3个
var count = 0;
var aa = a;
for (var i=0;i<a.length;i++)
{
var j = aa.indexOf(".");
if (j!=-1)
{
count = count+1;
//alert("count: "+count);
}
aa = aa.substring(j+1,a.length);
}
if(count>3)
{ alert(va+":IP格式错误(***.***.***.***)");
return 0;
}
if(count<3)
{ alert(va+":IP格式错误(***.***.***.***)");
return 0;
}
var L=a.length;
for(var j=0;j<4;j++)
{
//alert("j: "+j)
var temp = a.indexOf('.');
if (temp > -1)
{
var aSub = a.substring(0,temp);
//alert("aSub: "+aSub);
if(aSub>255)
{ alert(va+":数字取值范围为0~255");
return 0;
}
if(aSub<0)
{ alert(va+":数字取值范围为0~255");
return 0;
}
if(0 == fucCheckNUM(aSub))
{
alert(va+":IP中有非数字字符");
return 0;
}
}
else
{
var aSub = a;
//alert("--aSub: "+aSub);
if(aSub>255)
{ alert(va+":数字取值范围为0~255");
return 0;
}
if(aSub<0)
{ alert(va+":数字取值范围为0~255");
return 0;
}
if(0 == fucCheckNUM(aSub))
{ alert(va+":IP中有非数字字符");
return 0;
}
}
a = a.substring(temp+1,L);
}
return 1;
}
function checkAreaIP(formname,ctrlname)
{
var obj=eval("document."+formname+"."+ctrlname);
var str=obj.value;
var index;
while(1)
{
index=str.indexOf("\n");
if(-1!=index)
{
var tmp = str.substring(0,index-1);
str=str.substring(index+1,str.length);
tmp=tmp.trim();
if(tmp=="")
continue;
if(!checkIP(tmp))
return false;
}
else
{
var tmp = str.substring(0,str.length);
tmp=tmp.trim();
if(tmp=="")
return true;
if(!checkIP(tmp))
return false;
break;
}
}
//alert(fucCheckIP(obj.value));
return true;
}
function checkIP(ip)
{
var str=ip;
var index=str.indexOf("-");
if(-1!=index)
{
var beginip= str.substring(0,index);
var engip=str.substring(index+1,str.length);
if((1!=fucCheckIP(beginip))||(1!=fucCheckIP(engip)))
return false;
else
{
//判断起始ip是否小于等于终止ip
if(1==compareIP(beginip,engip))
return true;
else
return false;
}
}
else
{
if(fucCheckIP(ip))
return true;
else
return false;
}
}
function compareIP(beginip,endip)
{
var bgn=beginip;
var end=endip;
if(bgn==end)
return true;
//分解每个域作判断
for(var i=0;i<4;i++)
{
var index1=bgn.indexOf(".");
var index2=end.indexOf(".");
var tmp1;
var tmp2;
if(-1!=index1)
{
tmp1 = bgn.substring(0,index1);
tmp2 = end.substring(0,index2);
bgn=bgn.substring(index1+1,bgn.length);
end=end.substring(index2+1,end.length);
}
else
{
tmp1=bgn.substring(0,bgn.length);
tmp2=end.substring(0,end.length);
}
alert("tmp1:"+tmp1+"tmp2:"+tmp2+"compare"+compInteger(tmp1,tmp2));
if(1==compInteger(tmp1,tmp2))
{
alert(beginip+"-"+endip+":起始ip要小于等于终止ip");
return false
}
}
return true;
}
function LTrim(str)
{
var whitespace = new String(" \t\n\r");
var s = new String(str);
if (whitespace.indexOf(s.charAt(0)) != -1)
{
var j=0, i = s.length;
while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
{
j++;
}
s = s.substring(j, i);
}
return s;
}
function RTrim(str)
{
var whitespace = new String(" \t\n\r");
var s = new String(str);
if (whitespace.indexOf(s.charAt(s.length-1)) != -1)
{
var i = s.length - 1;
while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
{
i--;
}
s = s.substring(0, i+1);
}
return s;
}
// create the prototype on the String object
String.prototype.trim = function() {
// skip leading and trailing whitespace
// and return everything in between
//var x=this;
// x=x.replace(/^\s*(.*)/, "$1");
// x=x.replace(/(.*?)\s*$/, "$1");
// return x;
return RTrim(LTrim(str));
}
//-->
</script>
复制代码
作者:
黑色的鱼
时间:
2007-8-24 18:38
来看下,不错希望再接再厉
欢迎光临 黑色海岸线论坛 (http://bbs.thysea.com/)
Powered by Discuz! 7.2