📄 validate.js
字号:
function isEmpty(inputValue) {
if (inputValue == null || inputValue == "" ) {
return true
}
return false
}
function isNumber(inputValue) {
var input = parseFloat(inputValue)
if ( isNaN(input) ) {
return false
}
return true
}
function makeNumber(inputValue) {
if (isNumber(inputValue) ) {
return parseFloat(inputValue)
}
return 0
}
function isNumberInRange(inputValue, minValue, maxValue) {
var min = parseFloat(minValue)
var max = parseFloat(maxValue)
var input = parseFloat(inputValue)
if (isNumber(inputValue) && isNumber(minValue) && isNumber(maxValue) ) {
if (input <= max && input >= min) {
return true
}
}
return false
}
function isInteger(inputValue) {
if ( ! isNumber(inputValue) ) {
return false
}
inputStr = inputValue.toString()
if (inputStr.indexOf(".") != -1 ) {
return false
}
return true
}
function isPosInteger(inputValue) {
if ( ! isInteger(inputValue) ) {
return false
}
inputStr = inputValue.toString()
if (inputStr.indexOf("-") == -1 ) {
return false
}
return true
}
function roundNumber(inputValue, decimalPoints) {
places = parseInt(decimalPoints, 10) + 1
if ( ! isNumber(inputValue) ) {
return false
}
if (isInteger(inputValue)) {
return parseInt(inputValue)
}
inputStr = inputValue.toString()
endPoint = (inputStr.indexOf(".") + places)
resultValue = parseFloat(inputStr.substring(0,endPoint))
return resultValue
}
function isRoundNumber(inputValue, testValue) {
inputNum = parseFloat(inputValue)
testNum = parseFloat(testValue)
if (isInteger(inputNum/testNum)) {
return true
}
return false
}
function fullyValidInteger(o, fieldName) {
if (isEmpty(o.value)) {
var newValue = prompt('Enter a ' + fieldName, '')
if (! isEmpty(newValue)) {
o.value = newValue
}
}
if ( ! isNumberInRange(o.value, 1, 9999) ) {
alert("You must enter a number greater than 0 for the " + fieldName + " field")
o.focus()
return false
}
if (isInteger(o.value)) {
o.value = makeNumber(o.value)
return true
}
alert ("You must enter a number for the " + fieldName + " field")
o.focus()
return false
}
function areAllTextComplete(form, prompt) {
for (i=0; i < form.elements.length; i++) {
fieldValue = form.elements[i].value
if ( (form.elements[i].type == "text" || form.elements[i].type == "textarea") && isEmpty(fieldValue) ) {
if (prompt) {
alert("You must fill in all fields before continuing")
form.elements[i].focus()
}
return false
}
}
return true
}
function validateTextField(o, fieldName) {
if ( isEmpty(o.value) ) {
var newValue = prompt('Enter a value for ' + fieldName, '')
if ( isEmpty(newValue) ) {
alert("You must enter a value for " + fieldName)
o.focus()
return false
} else {
o.value = newValue
}
}
return true
}
function areRadiosComplete(form, prompt) {
var fieldValue
var radioChecked = false
for (i=0; i < form.elements.length; i++) {
if (form.elements[i].type == "radio") {
radioChecked = false
var radioSet = eval("form." + form.elements[i].name)
for (x=0; x < radioSet.length; x++) {
if (radioSet[x].checked) { radioChecked = true }
}
if (!radioChecked) {
if (prompt) {
alert("You must select a choice in the '" + form.elements[i].name + "' field")
radioSet[1].focus()
}
return false
}
}
}
return true
}
function convertMonthToNumber(mm) {
var monthString = mm
var returnValue
if (isNumber(mm)) {
returnValue = parseInt(mm)
} else {
monthString = monthString.substring(0,3)
monthString = monthString.toUpperCase()
switch (monthString) {
case "JAN":
returnValue = 1
break
case "FEB":
returnValue = 2
break
case "MAR":
returnValue = 3
break
case "APR":
returnValue = 4
break
case "MAY":
returnValue = 5
break
case "JUN":
returnValue = 6
break
case "JUL":
returnValue = 7
break
case "AUG":
returnValue = 8
break
case "SEP":
returnValue = 9
break
case "OCT":
returnValue = 10
break
case "NOV":
returnValue = 11
break
case "DEC":
returnValue = 12
break
default:
returnValue = 0
break
}
}
return returnValue
}
function isDateValid(dd, mm, yy, fieldName) {
var ddNo
var mmNo
var yyNo
var leapYear
var errMsg = null
if ((dd == null || dd == "") && (mm == null || mm == "") && (yy == null || yy == "")) {
errMsg = null
} else if (isNumber(dd) && isNumber(yy)) {
ddNo = parseInt(dd)
mmNo = convertMonthToNumber(mm)
yyNo = parseInt(yy)
if (!isNumberInRange(yyNo, 1000, 9999)){
errMsg = "The '" + fieldName + "' year must be of format YYYY"
} else if (!isNumberInRange(mmNo, 1, 12)) {
errMsg = "The '" + fieldName + "' month is incorrect"
} else if (mmNo == 4 || mmNo == 6 || mmNo == 9 || mmNo == 11) {
if (!isNumberInRange(ddNo, 1, 30)) {
errMsg = "The '" + fieldName + "' day cannot be greater than 30"
}
} else if (mmNo == 2) {
leapYear = (yyNo % 4 == 0)
if (leapYear && (yyNo % 100 == 0)) {
leapYear = (yyNo % 400 == 0)
}
if (leapYear) {
if (!isNumberInRange(ddNo, 1, 29)) {
errMsg = "The '" + fieldName + "' day cannot be greater than 29"
}
} else {
if (!isNumberInRange(ddNo, 1, 28)) {
errMsg = "The '" + fieldName + "' day cannot be greater than 28"
}
}
} else {
if (!isNumberInRange(ddNo, 1, 31)) {
errMsg = "The '" + fieldName + "' day cannot be greater than 31"
}
}
} else {
errMsg = "The '" + fieldName + "' format is not correct"
}
if (errMsg != null) {
alert(errMsg)
return false
} else {
return true
}
}
function createDate(dd, mm, yy) {
var ddNo
var mmNo
var yyNo
if ( ! isDateValid(dd, mm, yy, "date") ) {
return false
}
ddNo = parseInt(dd)
mmNo = convertMonthToNumber(mm) - 1
yyNo = parseInt(yy)
var aDate = new Date(yyNo, mmNo, ddNo, 0, 0, 0, 0)
return aDate
}
function isDateInPast(dd, mm, yy) {
var testDate = createDate(dd, mm, yy)
var todaysDate = new Date()
todaysDate.setHours(0)
todaysDate.setMinutes(0)
todaysDate.setSeconds(0)
todaysDate.setMilliseconds(0)
var testNumber = testDate.getTime()
var todayNumber = todaysDate.getTime()
if ( testNumber < todayNumber ) {
return true
}
return false
}
function getCookieData(label) {
var labelLen = label.length
var cLen = document.cookie.length
var i = 0
var cEnd
var cookieValue = " "
while (i < cLen) {
var j = i + labelLen
if (document.cookie.substring(i,j) == label) {
cEnd = document.cookie.indexOf(";", j)
if (cEnd == -1) {
cEnd = document.cookie.length
}
cookieValue = unescape(document.cookie.substring(j+1, cEnd))
return cookieValue
}
i++
}
return " "
}
function setRegionCookie(region) {
if ( region != "AL" ) {
setCookie('LastRegion', region, 365);
}
}
function setCookie(NameOfCookie, value, expiredays)
{
var ExpireDate = new Date ();
ExpireDate.setTime(ExpireDate.getTime() + (expiredays * 24 * 3600 * 1000));
document.cookie = NameOfCookie + "=" + escape(value) +
((expiredays == null) ? "" : "; expires=" + ExpireDate.toGMTString()) +"; path=/";
}
function isTimeValid(time, fieldName) {
var hours
var minutes
var colonInd
var hoursNo
var minutesNo
var errMsg = null
if (isEmpty(time) ) {
errMsg = "Please enter a valid " + fieldName
}
if (errMsg == null) {
colonInd = time.indexOf(":")
if (colonInd == null || colonInd != 2 || time.length != 5) {
errMsg = "Please enter a date in the format HH:MM for " + fieldName;
} else {
hours = time.substring(0, 2)
minutes = time.substring(3,5)
hoursNo = parseInt(hours)
minutesNo = parseInt(minutes)
if (!(isInteger(hours) && isNumberInRange(hoursNo, 0, 23))) {
errMsg = "The hour value for " + fieldName + " must be between 0 and 23";
}
if (!(isInteger(minutes) && isNumberInRange(minutesNo, 0, 59))) {
errMsg = "The minutes value for " + fieldName + " is not valid";
}
}
}
if (errMsg != null) {
alert(errMsg)
return false
}
return true
}
function earliestTime(time1, time2) {
if ( !(isTimeValid(time1) && isTimeValid(time2)) ) {
return -1;
}
time1No = (time1.substring(0, 2)) + (time1.substring(3, 5));
time2No = (time2.substring(0, 2)) + (time2.substring(3, 5));
if (time1No < time2No) {
return 1
}
if (time2No < time1No) {
return 2
} else {
return 0
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -