JavaScript公共运行库
/*
****************************************************
功 能:验证函数集合
说 明:
版 本:1.0
作 者:
创建时间:2005-8-25
***************************************************
*/
<!--
//禁止输入空格
function forbidSpace()
{
//onkeypress="forbidSpace();"
if (window.event.keyCode==32)
{
alert('不允许输入空格!');
window.event.keyCode = 0x0;
}
}
//去除字符串空格
function trim(s)
{
return s.replace(/(^\s+)|(\s+$)/g,"");
}
//表单项是否为空
function IsEmpty(pstr)
{
//alert(pstr)
if (trim(pstr).length == 0)
{
return true;
}
return false;
}
//比较两个表单项的值是否相同
function IsRepeat(obj1, obj2)
{
if ((obj1).value != (obj2).value)
{
return false;
}
return true;
}
//比较两个数值大小
function CompairNum(value1,value2)
{
var ret;
ret=eval(value1-value2);
if(ret>0 || isNaN(value1) || (value1.charAt(0)==0 && !isNaN(value1.charAt(1)) && value1.charAt(1)!='') )
{
alert('输入有误!');
return false;
}
return true;
}
//比较两个数值大小
function CompairNum2(value1,value2,note)
{
var ret;
//alert(value1);
ret=eval(value1-value2);
if(ret>0 || isNaN(value1) || (value1.charAt(0)==0 && !isNaN(value1.charAt(1)) && value1.charAt(1)!='') )
{
alert(note);
return false;
}
return true;
}
//百分数[数字 . %]
function percentage()
{// 37 - %;
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==46||window.event.keyCode==37))
{
window.event.keyCode=0x0;
}
}
//身份证[数字 x]
function identityCard()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==120))
{
window.event.keyCode = 0x0;
return false;
}
return true;
}
//格式必须仅为数字0-9
function onlyNumeric()
{// 0-9:48-57;-:45;
//var outCha="40 41 45 59";
if(window.event.keyCode<48||window.event.keyCode>57)
{
alert('只能输入数字!')
window.event.keyCode = 0x0;
return false;
}
return true;
}
//格式必须为数字和-
function numericF()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==45))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//格式必须为数字和.
function numericD()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==46))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//格式为数字,点(.)和负号(-)
function numericDF()
{
if(!((window.event.keyCode>47&&window.event.keyCode<58)||window.event.keyCode==46||window.event.keyCode==45))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
return (false);
}
}
//格式必须为数字和,
function numericB()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==44))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//格式必须为数字.,
function numericDB()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==44||window.event.keyCode==46))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//格式必须为数字-,
function numericFB()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==44||window.event.keyCode==45))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//格式必须为数字.-,
function numericDFB()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==46||window.event.keyCode==44||window.event.keyCode==45))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//[127以内ASCII值] 非大小写26个英文字母
function noLetter()
{
if ((window.event.keyCode>=65 && window.event.keyCode<=90)||(window.event.keyCode>=97&&window.event.keyCode<=122)||window.event.keyCode>127)
{
window.event.keyCode=0x0;
}
}
//表单项只能为数字和"-",用于电话/银行帐号验证上,可扩展到域名注册等
function IsNumberF(String)
{
var Letters = "1234567890-"; //可以自己增加可输入值
var i;
var c;
if(String.charAt( 0 )=='-')
return false;
if( String.charAt( String.length - 1 ) == '-' )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}
//数值检测,只为为0-9之间的数字
function IsNumber(name)
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++)
{
if(name.charAt(i) < "0" || name.charAt(i) > "9")
return false;
}
return true;
}
//Digit evaluation function
function isNum(passedVal)
{
if (passedVal == "")
return false;
else if (isNaN(passedVal))
return false;
for (i=0; i<passedVal.length; i++)
{
if (passedVal.charAt(0) == "." || passedVal.charAt(passedVal.length-1) == "." || (passedVal.length > 1 && passedVal.charAt(0) == "0" && !isNaN(passedVal.charAt(1))))
return false;
else if (passedVal.charAt(0) == "-")
i++;
else if (passedVal.charAt(i) < "0" && passedVal.charAt(i) != ".")
return false;
else if (passedVal.charAt(i) > "9" && passedVal.charAt(i) != ".")
return false;
}
return true;
}
//↑↑↑//
//判断是否为数值
function checkNum(obj)
{
if (isNum(document.all(''+ obj +'').value)==false)
{
alert('非正确的数值输入!!!');
document.all(''+ obj +'').focus();
document.all(''+ obj +'').select();
return false;
}
return true;
}
//表单项输入数值/长度限定
function Limit(obj, min, max)
{
if ((obj).length > max || (obj).length < min)
{
return false;
}
return true;
}
//英文值检测
function isEnglish(name)
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++)
{
if(name.charCodeAt(i) > 128)
return false;
}
return true;
}
//中文值检测
function isChinese(name)
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++)
{
if(name.charCodeAt(i) > 128)
return true;
}
return false;
}
//限定表单项不能输入的字符
function contain(str,charset)// 字符串包含测试函数
{
var i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return true;
return false;
}
// E-mail值检测
function isMail(name)
{
if(!isEnglish(name))
return false;
i = name.indexOf("@");
j = name.lastIndexOf("@");
if(i == -1)
return false;
if(i != j)
return false;
if(i == name.length)
return false;
return true;
}
function IsEmail2(stringToTest)
{
var AmperAt
var DotAt
var strim
if (trim(stringToTest) == "")
{
return(true);
}
strim = trim(stringToTest);
if (strim.search(/\s/) != -1)
return (false);
AmperAt = stringToTest.indexOf("@")
if (AmperAt < 1)
return (false);
DotAt = stringToTest.indexOf(".",AmperAt);
//DotAt = stringToTest.indexOf(".")
if (DotAt < (AmperAt+2) || DotAt == (stringToTest.length-1))
return (false);
return (true);
}
function isEmail3(email)
{
var reg=/^@([\w-]+\.)+[\w-]{2,4}$$$/;
return ( email.match( reg ) != null ) ? true:false;
}
//---------------------------------------
function checkEmail(mail)
{
var strr;
ValidationPassed = true;
re=/(\w+@\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i;
re.exec(mail);
if (RegExp.$3!=""&&RegExp.$3!="."&&RegExp.$2!=".") strr=RegExp.$1+RegExp.$2+RegExp.$3
else
if (RegExp.$2!=""&&RegExp.$2!=".") strr=RegExp.$1+RegExp.$2
else
strr=RegExp.$1
if (strr!=mail)
{
alert("请填写正确的邮件地址!!!")
ValidationPassed = false;
return;
}
return true;
}
//↑↑↑//
function detectEmail(obj) //检测输入的Email
{
var mail=trim(document.all(''+obj+'').value);
if(IsEmpty(mail))
{
return false;
}
else if(!checkEmail(mail))
{
document.all(''+obj+'').select();
return false;
}
return true;
}
//-------------------------------------------
function IsDate(s)
{
var daysInMonth;
var year;
var month;
var day;
var delimiter;
var stemp;
// check for illegal characters
if (s.search(/[^0-9-\/_]/) != -1)
return false;
// parse string to get year, month and day
if (s.search(/\/{1}/) != -1)
delimiter = "/";
else
{
if (s.search(/-{1}/) != -1)
delimiter = "-";
else
return false;
}
stemp = s;
DelimAt = stemp.indexOf(delimiter);
month = stemp.substring(0,DelimAt);
stemp = stemp.substring(DelimAt + 1, stemp.length);
DelimAt = stemp.indexOf(delimiter);
day = stemp.substring(0,DelimAt);
year = stemp.substring(DelimAt + 1, stemp.length);
// Explicitly change type to integer to make code work in both
// JavaScript 1.1 and JavaScript 1.2.
var intYear = parseInt(year,10);
var intMonth = parseInt(month,10);
var intDay = parseInt(day,10);
// catch invalid years (not 2- or 4-digit)
if (intYear < 0) return false;
if ((year.length != 2) && (year.length != 4)) return false;
// catch invalid months
if (intMonth < 1 || intMonth > 12) return false;
// catch invalid days, except for February
if (intDay < 1 || intDay > 31) return false;
switch (intMonth)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
daysInMonth = 31;
break;
case 4:
case 6:
case 9:
case 11:
daysInMonth = 30;
break;
case 2:
daysInMonth = ((intYear % 4 == 0) && ( (!(intYear % 100 == 0)) || (intYear % 400 == 0) ) ) ? 29 : 28;
break;
}
if (intDay > daysInMonth) return false;
return true;
}
//检测日期
// =============================================
// note:the function need 6 numeric,other is irregular
// 检测输入值是否为六位,是否为时间
// =============================================
function Is6Date(inDate)
{
if(inDate.length==6 & !isNaN(inDate))//refuse string and length=6
{
var fir2str;
var sec2str;
var thi2str;
var lastDate;
var newDate,returnResult;
returnResult=0;
fir2str=inDate.substr(0,2);//the first 2 string
sec2str=inDate.substr(2,2);//the second 2 string
thi2str=inDate.substr(4,2);//the third 2 string
lastDate="20"+fir2str+"/"+sec2str+"/"+thi2str;
newDate=new Date(lastDate);
returnResult+=(sec2str==(newDate.getMonth()+1))?0:1;//the month must exist and be legality?
returnResult+=(thi2str==newDate.getDate())?0:1;
if(returnResult>0)
{
alert("你的日期输入有误,格式必须为6位YYMMDD!");
return false;
}
else
{
return true;
}
}
else
{
alert("你的日期输入有误,格式必须为6位YYMMDD!");
return false;
}
}
//金额大写
function DX(currencyDigits)
{
var MAXIMUM_NUMBER = 99999999999.99;
// Predefine the radix characters and currency symbols for output:
var CN_ZERO = "零";
var CN_ONE = "壹";
var CN_TWO = "贰";
var CN_THREE = "叁";
var CN_FOUR = "肆";
var CN_FIVE = "伍";
var CN_SIX = "陆";
var CN_SEVEN = "柒";
var CN_EIGHT = "捌";
var CN_NINE = "玖";
var CN_TEN = "拾";
var CN_HUNDRED = "佰";
var CN_THOUSAND = "仟";
var CN_TEN_THOUSAND = "万";
var CN_HUNDRED_MILLION = "亿";
//var CN_SYMBOL = "人民币";
var CN_DOLLAR = "元";
var CN_TEN_CENT = "角";
var CN_CENT = "分";
var CN_INTEGER = "整";
// Variables:
var integral; // Represent integral part of digit number.
var decimal; // Represent decimal part of digit number.
var outputCharacters; // The output result.
var parts;
var digits, radices, bigRadices, decimals;
var zeroCount;
var i, p, d;
var quotient, modulus;
// Validate input string:
currencyDigits = currencyDigits.toString();
if (currencyDigits == "") {
alert("Empty input!");
return "";
}
if (currencyDigits.match(/[^,.\d]/) != null) {
alert("Invalid characters in the input string!");
return "";
}
if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) {
alert("Illegal format of digit number!");
return "";
}
// Normalize the format of input digits:
currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters.
currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning.
// Assert the number is not greater than the maximum number.
if (Number(currencyDigits) > MAXIMUM_NUMBER) {
alert("Too large a number to convert!");
return "";
}
// Process the coversion from currency digits to characters:
// Separate integral and decimal parts before processing coversion:
parts = currencyDigits.split(".");
if (parts.length > 1) {
integral = parts[0];
decimal = parts[1];
// Cut down redundant decimal digits that are after the second.
decimal = decimal.substr(0, 2);
}
else {
integral = parts[0];
decimal = "";
}
// Prepare the characters corresponding to the digits:
digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);
radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);
bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);
decimals = new Array(CN_TEN_CENT, CN_CENT);
// Start processing:
outputCharacters = "";
// Process integral part if it is larger than 0:
if (Number(integral) > 0) {
zeroCount = 0;
for (i = 0; i < integral.length; i++) {
p = integral.length - i - 1;
d = integral.substr(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0") {
zeroCount++;
}
else {
if (zeroCount > 0)
{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[Number(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4) {
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += CN_DOLLAR;
}
// Process decimal part if there is:
if (decimal != "") {
for (i = 0; i < decimal.length; i++) {
d = decimal.substr(i, 1);
if (d != "0") {
outputCharacters += digits[Number(d)] + decimals[i];
}
}
}
// Confirm and return the final output string:
if (outputCharacters == "") {
outputCharacters = CN_ZERO + CN_DOLLAR;
}
if (decimal == "") {
outputCharacters += CN_INTEGER;
}
//outputCharacters = CN_SYMBOL + outputCharacters;
return outputCharacters;
}
//-->
****************************************************
功 能:验证函数集合
说 明:
版 本:1.0
作 者:
创建时间:2005-8-25
***************************************************
*/
<!--
//禁止输入空格
function forbidSpace()
{
//onkeypress="forbidSpace();"
if (window.event.keyCode==32)
{
alert('不允许输入空格!');
window.event.keyCode = 0x0;
}
}
//去除字符串空格
function trim(s)
{
return s.replace(/(^\s+)|(\s+$)/g,"");
}
//表单项是否为空
function IsEmpty(pstr)
{
//alert(pstr)
if (trim(pstr).length == 0)
{
return true;
}
return false;
}
//比较两个表单项的值是否相同
function IsRepeat(obj1, obj2)
{
if ((obj1).value != (obj2).value)
{
return false;
}
return true;
}
//比较两个数值大小
function CompairNum(value1,value2)
{
var ret;
ret=eval(value1-value2);
if(ret>0 || isNaN(value1) || (value1.charAt(0)==0 && !isNaN(value1.charAt(1)) && value1.charAt(1)!='') )
{
alert('输入有误!');
return false;
}
return true;
}
//比较两个数值大小
function CompairNum2(value1,value2,note)
{
var ret;
//alert(value1);
ret=eval(value1-value2);
if(ret>0 || isNaN(value1) || (value1.charAt(0)==0 && !isNaN(value1.charAt(1)) && value1.charAt(1)!='') )
{
alert(note);
return false;
}
return true;
}
//百分数[数字 . %]
function percentage()
{// 37 - %;
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==46||window.event.keyCode==37))
{
window.event.keyCode=0x0;
}
}
//身份证[数字 x]
function identityCard()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==120))
{
window.event.keyCode = 0x0;
return false;
}
return true;
}
//格式必须仅为数字0-9
function onlyNumeric()
{// 0-9:48-57;-:45;
//var outCha="40 41 45 59";
if(window.event.keyCode<48||window.event.keyCode>57)
{
alert('只能输入数字!')
window.event.keyCode = 0x0;
return false;
}
return true;
}
//格式必须为数字和-
function numericF()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==45))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//格式必须为数字和.
function numericD()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==46))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//格式为数字,点(.)和负号(-)
function numericDF()
{
if(!((window.event.keyCode>47&&window.event.keyCode<58)||window.event.keyCode==46||window.event.keyCode==45))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
return (false);
}
}
//格式必须为数字和,
function numericB()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==44))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//格式必须为数字.,
function numericDB()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==44||window.event.keyCode==46))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//格式必须为数字-,
function numericFB()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==44||window.event.keyCode==45))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//格式必须为数字.-,
function numericDFB()
{
if(!(window.event.keyCode>47&&window.event.keyCode<58||window.event.keyCode==46||window.event.keyCode==44||window.event.keyCode==45))
{
alert('只能输入数字!')
window.event.keyCode=0x0;
}
}
//[127以内ASCII值] 非大小写26个英文字母
function noLetter()
{
if ((window.event.keyCode>=65 && window.event.keyCode<=90)||(window.event.keyCode>=97&&window.event.keyCode<=122)||window.event.keyCode>127)
{
window.event.keyCode=0x0;
}
}
//表单项只能为数字和"-",用于电话/银行帐号验证上,可扩展到域名注册等
function IsNumberF(String)
{
var Letters = "1234567890-"; //可以自己增加可输入值
var i;
var c;
if(String.charAt( 0 )=='-')
return false;
if( String.charAt( String.length - 1 ) == '-' )
return false;
for( i = 0; i < String.length; i ++ )
{
c = String.charAt( i );
if (Letters.indexOf( c ) < 0)
return false;
}
return true;
}
//数值检测,只为为0-9之间的数字
function IsNumber(name)
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++)
{
if(name.charAt(i) < "0" || name.charAt(i) > "9")
return false;
}
return true;
}
//Digit evaluation function
function isNum(passedVal)
{
if (passedVal == "")
return false;
else if (isNaN(passedVal))
return false;
for (i=0; i<passedVal.length; i++)
{
if (passedVal.charAt(0) == "." || passedVal.charAt(passedVal.length-1) == "." || (passedVal.length > 1 && passedVal.charAt(0) == "0" && !isNaN(passedVal.charAt(1))))
return false;
else if (passedVal.charAt(0) == "-")
i++;
else if (passedVal.charAt(i) < "0" && passedVal.charAt(i) != ".")
return false;
else if (passedVal.charAt(i) > "9" && passedVal.charAt(i) != ".")
return false;
}
return true;
}
//↑↑↑//
//判断是否为数值
function checkNum(obj)
{
if (isNum(document.all(''+ obj +'').value)==false)
{
alert('非正确的数值输入!!!');
document.all(''+ obj +'').focus();
document.all(''+ obj +'').select();
return false;
}
return true;
}
//表单项输入数值/长度限定
function Limit(obj, min, max)
{
if ((obj).length > max || (obj).length < min)
{
return false;
}
return true;
}
//英文值检测
function isEnglish(name)
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++)
{
if(name.charCodeAt(i) > 128)
return false;
}
return true;
}
//中文值检测
function isChinese(name)
{
if(name.length == 0)
return false;
for(i = 0; i < name.length; i++)
{
if(name.charCodeAt(i) > 128)
return true;
}
return false;
}
//限定表单项不能输入的字符
function contain(str,charset)// 字符串包含测试函数
{
var i;
for(i=0;i<charset.length;i++)
if(str.indexOf(charset.charAt(i))>=0)
return true;
return false;
}
// E-mail值检测
function isMail(name)
{
if(!isEnglish(name))
return false;
i = name.indexOf("@");
j = name.lastIndexOf("@");
if(i == -1)
return false;
if(i != j)
return false;
if(i == name.length)
return false;
return true;
}
function IsEmail2(stringToTest)
{
var AmperAt
var DotAt
var strim
if (trim(stringToTest) == "")
{
return(true);
}
strim = trim(stringToTest);
if (strim.search(/\s/) != -1)
return (false);
AmperAt = stringToTest.indexOf("@")
if (AmperAt < 1)
return (false);
DotAt = stringToTest.indexOf(".",AmperAt);
//DotAt = stringToTest.indexOf(".")
if (DotAt < (AmperAt+2) || DotAt == (stringToTest.length-1))
return (false);
return (true);
}
function isEmail3(email)
{
var reg=/^@([\w-]+\.)+[\w-]{2,4}$$$/;
return ( email.match( reg ) != null ) ? true:false;
}
//---------------------------------------
function checkEmail(mail)
{
var strr;
ValidationPassed = true;
re=/(\w+@\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i;
re.exec(mail);
if (RegExp.$3!=""&&RegExp.$3!="."&&RegExp.$2!=".") strr=RegExp.$1+RegExp.$2+RegExp.$3
else
if (RegExp.$2!=""&&RegExp.$2!=".") strr=RegExp.$1+RegExp.$2
else
strr=RegExp.$1
if (strr!=mail)
{
alert("请填写正确的邮件地址!!!")
ValidationPassed = false;
return;
}
return true;
}
//↑↑↑//
function detectEmail(obj) //检测输入的Email
{
var mail=trim(document.all(''+obj+'').value);
if(IsEmpty(mail))
{
return false;
}
else if(!checkEmail(mail))
{
document.all(''+obj+'').select();
return false;
}
return true;
}
//-------------------------------------------
function IsDate(s)
{
var daysInMonth;
var year;
var month;
var day;
var delimiter;
var stemp;
// check for illegal characters
if (s.search(/[^0-9-\/_]/) != -1)
return false;
// parse string to get year, month and day
if (s.search(/\/{1}/) != -1)
delimiter = "/";
else
{
if (s.search(/-{1}/) != -1)
delimiter = "-";
else
return false;
}
stemp = s;
DelimAt = stemp.indexOf(delimiter);
month = stemp.substring(0,DelimAt);
stemp = stemp.substring(DelimAt + 1, stemp.length);
DelimAt = stemp.indexOf(delimiter);
day = stemp.substring(0,DelimAt);
year = stemp.substring(DelimAt + 1, stemp.length);
// Explicitly change type to integer to make code work in both
// JavaScript 1.1 and JavaScript 1.2.
var intYear = parseInt(year,10);
var intMonth = parseInt(month,10);
var intDay = parseInt(day,10);
// catch invalid years (not 2- or 4-digit)
if (intYear < 0) return false;
if ((year.length != 2) && (year.length != 4)) return false;
// catch invalid months
if (intMonth < 1 || intMonth > 12) return false;
// catch invalid days, except for February
if (intDay < 1 || intDay > 31) return false;
switch (intMonth)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
daysInMonth = 31;
break;
case 4:
case 6:
case 9:
case 11:
daysInMonth = 30;
break;
case 2:
daysInMonth = ((intYear % 4 == 0) && ( (!(intYear % 100 == 0)) || (intYear % 400 == 0) ) ) ? 29 : 28;
break;
}
if (intDay > daysInMonth) return false;
return true;
}
//检测日期
// =============================================
// note:the function need 6 numeric,other is irregular
// 检测输入值是否为六位,是否为时间
// =============================================
function Is6Date(inDate)
{
if(inDate.length==6 & !isNaN(inDate))//refuse string and length=6
{
var fir2str;
var sec2str;
var thi2str;
var lastDate;
var newDate,returnResult;
returnResult=0;
fir2str=inDate.substr(0,2);//the first 2 string
sec2str=inDate.substr(2,2);//the second 2 string
thi2str=inDate.substr(4,2);//the third 2 string
lastDate="20"+fir2str+"/"+sec2str+"/"+thi2str;
newDate=new Date(lastDate);
returnResult+=(sec2str==(newDate.getMonth()+1))?0:1;//the month must exist and be legality?
returnResult+=(thi2str==newDate.getDate())?0:1;
if(returnResult>0)
{
alert("你的日期输入有误,格式必须为6位YYMMDD!");
return false;
}
else
{
return true;
}
}
else
{
alert("你的日期输入有误,格式必须为6位YYMMDD!");
return false;
}
}
//金额大写
function DX(currencyDigits)
{
var MAXIMUM_NUMBER = 99999999999.99;
// Predefine the radix characters and currency symbols for output:
var CN_ZERO = "零";
var CN_ONE = "壹";
var CN_TWO = "贰";
var CN_THREE = "叁";
var CN_FOUR = "肆";
var CN_FIVE = "伍";
var CN_SIX = "陆";
var CN_SEVEN = "柒";
var CN_EIGHT = "捌";
var CN_NINE = "玖";
var CN_TEN = "拾";
var CN_HUNDRED = "佰";
var CN_THOUSAND = "仟";
var CN_TEN_THOUSAND = "万";
var CN_HUNDRED_MILLION = "亿";
//var CN_SYMBOL = "人民币";
var CN_DOLLAR = "元";
var CN_TEN_CENT = "角";
var CN_CENT = "分";
var CN_INTEGER = "整";
// Variables:
var integral; // Represent integral part of digit number.
var decimal; // Represent decimal part of digit number.
var outputCharacters; // The output result.
var parts;
var digits, radices, bigRadices, decimals;
var zeroCount;
var i, p, d;
var quotient, modulus;
// Validate input string:
currencyDigits = currencyDigits.toString();
if (currencyDigits == "") {
alert("Empty input!");
return "";
}
if (currencyDigits.match(/[^,.\d]/) != null) {
alert("Invalid characters in the input string!");
return "";
}
if ((currencyDigits).match(/^((\d{1,3}(,\d{3})*(.((\d{3},)*\d{1,3}))?)|(\d+(.\d+)?))$/) == null) {
alert("Illegal format of digit number!");
return "";
}
// Normalize the format of input digits:
currencyDigits = currencyDigits.replace(/,/g, ""); // Remove comma delimiters.
currencyDigits = currencyDigits.replace(/^0+/, ""); // Trim zeros at the beginning.
// Assert the number is not greater than the maximum number.
if (Number(currencyDigits) > MAXIMUM_NUMBER) {
alert("Too large a number to convert!");
return "";
}
// Process the coversion from currency digits to characters:
// Separate integral and decimal parts before processing coversion:
parts = currencyDigits.split(".");
if (parts.length > 1) {
integral = parts[0];
decimal = parts[1];
// Cut down redundant decimal digits that are after the second.
decimal = decimal.substr(0, 2);
}
else {
integral = parts[0];
decimal = "";
}
// Prepare the characters corresponding to the digits:
digits = new Array(CN_ZERO, CN_ONE, CN_TWO, CN_THREE, CN_FOUR, CN_FIVE, CN_SIX, CN_SEVEN, CN_EIGHT, CN_NINE);
radices = new Array("", CN_TEN, CN_HUNDRED, CN_THOUSAND);
bigRadices = new Array("", CN_TEN_THOUSAND, CN_HUNDRED_MILLION);
decimals = new Array(CN_TEN_CENT, CN_CENT);
// Start processing:
outputCharacters = "";
// Process integral part if it is larger than 0:
if (Number(integral) > 0) {
zeroCount = 0;
for (i = 0; i < integral.length; i++) {
p = integral.length - i - 1;
d = integral.substr(i, 1);
quotient = p / 4;
modulus = p % 4;
if (d == "0") {
zeroCount++;
}
else {
if (zeroCount > 0)
{
outputCharacters += digits[0];
}
zeroCount = 0;
outputCharacters += digits[Number(d)] + radices[modulus];
}
if (modulus == 0 && zeroCount < 4) {
outputCharacters += bigRadices[quotient];
}
}
outputCharacters += CN_DOLLAR;
}
// Process decimal part if there is:
if (decimal != "") {
for (i = 0; i < decimal.length; i++) {
d = decimal.substr(i, 1);
if (d != "0") {
outputCharacters += digits[Number(d)] + decimals[i];
}
}
}
// Confirm and return the final output string:
if (outputCharacters == "") {
outputCharacters = CN_ZERO + CN_DOLLAR;
}
if (decimal == "") {
outputCharacters += CN_INTEGER;
}
//outputCharacters = CN_SYMBOL + outputCharacters;
return outputCharacters;
}
//-->
///<PublicVariable>定义一全局非法字符枚举变量</PublicVariable>///
var ForbiddenWord="EXEC ,XP_,SP_,DECLARE ,UNION ,CMD ,+,@,//,..,;,--,%,0X "; //PS:注意 [space]不能被trim掉
///<summary>检测是否存在SQL Injection问题</summary>///
///<parms>SQL语句 || String;</parms>///
///<returns>A Word In ForbiddenWord</returns>///
function CheckSQLInjection(SQL)
{
SQL = SQL.toUpperCase();
arrForbiddenWord=ForbiddenWord.split(",");
for (var i=0;i<arrForbiddenWord.length;i++)
{
if (SQL.indexOf(arrForbiddenWord[i])>=0)
{
return arrForbiddenWord[i];
}
}
return '';
}
// 增加一个名为 CheckSQLInjection 的函数作为
// String 构造函数的原型对象的一个方法。
String.prototype.CheckSQLInjection = function()
{
return CheckSQLInjection(this);
}
//判断是否为HTML格式
String.prototype.IsHTML = function()
{
return /<(\/)?[A-Za-z]+>/.test(this);
}
///<summary>检测HTML及非法字符ForbiddenWord</summary>///
///<parms>ToControl - 要检测的控件; ValidControl - 显示验证消息的控件;</parms>///
///<returns>true/false;</returns>///
///<invoke>ToControl.OnBlur() || SubmitButton.Click();</invoke>///
function OnValidHTML(ToControl,ValidControl)
{
var bstr='';
var objToControl;
var objValidControl;
objToControl = document.getElementById(ToControl);
objValidControl = document.getElementById(ValidControl);
if(objToControl.value.IsHTML())
{
objValidControl.style.display='block';
objValidControl.innerHTML = "此处不允许类似HTML标记";
return false;
}
bstr=objToControl.value.CheckSQLInjection();
if(bstr!='')
{
objValidControl.style.display='block';
objValidControl.innerHTML = "此处不允许非法字符:" + bstr;//ForbiddenWord;
return false;
}
objValidControl.style.display='none';
return true;
}
var ForbiddenWord="EXEC ,XP_,SP_,DECLARE ,UNION ,CMD ,+,@,//,..,;,--,%,0X "; //PS:注意 [space]不能被trim掉
///<summary>检测是否存在SQL Injection问题</summary>///
///<parms>SQL语句 || String;</parms>///
///<returns>A Word In ForbiddenWord</returns>///
function CheckSQLInjection(SQL)
{
SQL = SQL.toUpperCase();
arrForbiddenWord=ForbiddenWord.split(",");
for (var i=0;i<arrForbiddenWord.length;i++)
{
if (SQL.indexOf(arrForbiddenWord[i])>=0)
{
return arrForbiddenWord[i];
}
}
return '';
}
// 增加一个名为 CheckSQLInjection 的函数作为
// String 构造函数的原型对象的一个方法。
String.prototype.CheckSQLInjection = function()
{
return CheckSQLInjection(this);
}
//判断是否为HTML格式
String.prototype.IsHTML = function()
{
return /<(\/)?[A-Za-z]+>/.test(this);
}
///<summary>检测HTML及非法字符ForbiddenWord</summary>///
///<parms>ToControl - 要检测的控件; ValidControl - 显示验证消息的控件;</parms>///
///<returns>true/false;</returns>///
///<invoke>ToControl.OnBlur() || SubmitButton.Click();</invoke>///
function OnValidHTML(ToControl,ValidControl)
{
var bstr='';
var objToControl;
var objValidControl;
objToControl = document.getElementById(ToControl);
objValidControl = document.getElementById(ValidControl);
if(objToControl.value.IsHTML())
{
objValidControl.style.display='block';
objValidControl.innerHTML = "此处不允许类似HTML标记";
return false;
}
bstr=objToControl.value.CheckSQLInjection();
if(bstr!='')
{
objValidControl.style.display='block';
objValidControl.innerHTML = "此处不允许非法字符:" + bstr;//ForbiddenWord;
return false;
}
objValidControl.style.display='none';
return true;
}