FormatNumber(Expression, NumDigitsAfterDecimal, IncludeLeadingDigit,
UseParensForNegativeNumbers, GroupDigits)
======================================================================
function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
IN:
NUM - the number to format
decimalNum - the number of decimal places to format the number to
bolLeadingZero - true / false - display a leading zero for
numbers between -1 and 1
bolParens - true / false - use parenthesis around negative numbers
bolCommas - put commas as number separators.
RETVAL:
The formatted number!
**********************************************************************/
{
if (isNaN(parseInt(num))) return "NaN";
var tmpNum = num;
var iSign = num < 0 ? -1 : 1; // Get sign of number
// Adjust number so only the specified number of numbers after
// the decimal point are shown.
tmpNum *= Math.pow(10,decimalNum);
tmpNum = Math.round(Math.abs(tmpNum))
tmpNum /= Math.pow(10,decimalNum);
tmpNum *= iSign; // Readjust for sign
// Create a string object to do our formatting on
var tmpNumStr = new String(tmpNum);
// See if we need to strip out the leading zero or not.
if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
if (num > 0)
tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
else
tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
// See if we need to put in the commas
if (bolCommas && (num >= 1000 || num <= -1000)) {
var iStart = tmpNumStr.indexOf(".");
if (iStart < 0)
iStart = tmpNumStr.length;
iStart -= 3;
while (iStart >= 1) {
tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
iStart -= 3;
}
}
// See if we need to use parenthesis
if (bolParens && num < 0)
tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";
return tmpNumStr; // Return our formatted string!
}
FormatPercent(Expression, NumDigitsAfterDecimal, IncludeLeadingDigit,
UseParensForNegativeNumbers, GroupDigits)
- Returns an expression formatted as a percentage (multiplied by 100)
with a trailing % character.
(NOTE!! This function MUST have FormatNumber
also provided.)
========================================================================
function FormatPercent(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
IN:
NUM - the number to format
decimalNum - the number of decimal places to format the number to
bolLeadingZero - true / false - display a leading zero for
numbers between -1 and 1
bolParens - true / false - use parenthesis around negative numbers
bolCommas - put commas as number separators.
RETVAL:
The formatted number!
**********************************************************************/
{
var tmpStr = new String(FormatNumber(num*100,decimalNum,bolLeadingZero,bolParens,bolCommas));
if (tmpStr.indexOf(")") != -1) {
// We know we have a negative number, so place '%' inside of ')'
tmpStr = tmpStr.substring(0,tmpStr.length - 1) + "%)";
return tmpStr;
}
else
return tmpStr + "%"; // Return formatted string!
}
FormatCurrency(Expression, NumDigitsAfterDecimal, IncludeLeadingDigit,
UseParensForNegativeNumbers, GroupDigits)
(NOTE!! This function MUST have FormatNumber
also provided.)
========================================================================
function FormatCurrency(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
IN:
NUM - the number to format
decimalNum - the number of decimal places to format the number to
bolLeadingZero - true / false - display a leading zero for
numbers between -1 and 1
bolParens - true / false - use parenthesis around negative numbers
bolCommas - put commas as number separators.
RETVAL:
The formatted number!
**********************************************************************/
{
var tmpStr = new String(FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas));
if (tmpStr.indexOf("(") != -1 || tmpStr.indexOf("-") != -1) {
// We know we have a negative number, so place '$' inside of '(' / after '-'
if (tmpStr.charAt(0) == "(")
tmpStr = "($" + tmpStr.substring(1,tmpStr.length);
else if (tmpStr.charAt(0) == "-")
tmpStr = "-$" + tmpStr.substring(1,tmpStr.length);
return tmpStr;
}
else
return "$" + tmpStr; // Return formatted string!
}
FormatDateTime(datetime, FormatType) : Returns an expression formatted
as a date or time
========================================================================
function FormatDateTime(datetime, FormatType)
/*
FomatType takes the following values
1 - General Date = Friday, October 30, 1998
2 - Typical Date = 10/30/98
3 - Standard Time = 6:31 PM
4 - Military Time = 18:31
*/
{
var strDate = new String(datetime);
if (strDate.toUpperCase() == "NOW") {
var myDate = new Date();
strDate = String(myDate);
} else {
var myDate = new Date(datetime);
strDate = String(myDate);
}
// Get the date variable parts
var Day = new String(strDate.substring(0,3));
if (Day == "Sun") Day = "Sunday";
if (Day == "Mon") Day = "Monday";
if (Day == "Tue") Day = "Tuesday";
if (Day == "Wed") Day = "Wednesday";
if (Day == "Thu") Day = "Thursday";
if (Day == "Fri") Day = "Friday";
if (Day == "Sat") Day = "Saturday";
var Month = new String(strDate.substring(4,7)), MonthNumber = 0;
if (Month == "Jan") { Month = "January"; MonthNumber = 1; }
if (Month == "Feb") { Month = "February"; MonthNumber = 2; }
if (Month == "Mar") { Month = "March"; MonthNumber = 3; }
if (Month == "Apr") { Month = "April"; MonthNumber = 4; }
if (Month == "May") { Month = "May"; MonthNumber = 5; }
if (Month == "Jun") { Month = "June"; MonthNumber = 6; }
if (Month == "Jul") { Month = "July"; MonthNumber = 7; }
if (Month == "Aug") { Month = "August"; MonthNumber = 8; }
if (Month == "Sep") { Month = "September"; MonthNumber = 9; }
if (Month == "Oct") { Month = "October"; MonthNumber = 10; }
if (Month == "Nov") { Month = "November"; MonthNumber = 11; }
if (Month == "Dec") { Month = "December"; MonthNumber = 12; }
var curPos = 11;
var MonthDay = new String(strDate.substring(8,10));
if (MonthDay.charAt(1) == " ") {
MonthDay = "0" + MonthDay.charAt(0);
curPos--;
}
var MilitaryTime = new String(strDate.substring(curPos,curPos + 5));
var Year = new String(strDate.substring(strDate.length - 4, strDate.length));
document.write(strDate + "");
// Format Type decision time!
if (FormatType == 1)
strDate = Day + ", " + Month + " " + MonthDay + ", " + Year;
else if (FormatType == 2)
strDate = MonthNumber + "/" + MonthDay + "/" + Year.substring(2,4);
else if (FormatType == 3) {
var AMPM = MilitaryTime.substring(0,2) >= 12 && MilitaryTime.substring(0,2) != "24" ? " PM" : " AM";
if (MilitaryTime.substring(0,2) > 12)
strDate = (MilitaryTime.substring(0,2) - 12) + ":" + MilitaryTime.substring(3,MilitaryTime.length) + AMPM;
else {
if (MilitaryTime.substring(0,2) < 10)
strDate = MilitaryTime.substring(1,MilitaryTime.length) + AMPM;
else
strDate = MilitaryTime + AMPM;
}
}
else if (FormatType == 4)
strDate = MilitaryTime;
return strDate;
}
LTrim(string) : Returns a copy of a string without leading spaces.
==================================================================
function LTrim(str)
/***
PURPOSE: Remove leading blanks from our string.
IN: str - the string we want to LTrim
RETVAL: An LTrimmed string!
***/
{
var whitespace = new String(" \t\n\r");
var s = new String(str);
if (whitespace.indexOf(s.charAt(0)) != -1) {
// We have a string with leading blank(s)...
var j=0, i = s.length;
// Iterate from the far left of string until we
// don't have any more whitespace...
while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
j++;
// Get the substring from the first non-whitespace
// character to the end of the string...
s = s.substring(j, i);
}
return s;
}
RTrim(string) : Returns a copy of a string without trailing spaces.
==================================================================
function RTrim(str)
/***
PURPOSE: Remove trailing blanks from our string.
IN: str - the string we want to RTrim
RETVAL: An RTrimmed string!
***/
{
// We don't want to trip JUST spaces, but also tabs,
// line feeds, etc. Add anything else you want to
// "trim" here in Whitespace
var whitespace = new String(" \t\n\r");
var s = new String(str);
if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
// We have a string with trailing blank(s)...
var i = s.length - 1; // Get length of string
// Iterate from the far right of string until we
// don't have any more whitespace...
while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
i--;
// Get the substring from the front of the string to
// where the last non-whitespace character is...
s = s.substring(0, i+1);
}
return s;
}
Trim(string) : Returns a copy of a string without leading or
trailing spaces
=============================================================
function Trim(str)
/***
PURPOSE: Remove trailing and leading blanks from our string.
IN: str - the string we want to Trim
RETVAL: A Trimmed string!
***/
{
return RTrim(LTrim(str));
}
Len(String) : Returns the number of characters in a string
===========================================================
function Len(str)
/***
IN: str - the string whose length we are interested in
RETVAL: The number of characters in the string
***/
{ return String(str).length; }
Left(string, length): Returns a specified number of characters from the
left side of a string
========================================================================
function Left(str, n)
/***
IN: str - the string we are LEFTing
n - the number of characters we want to return
RETVAL: n characters from the left side of the string
***/
{
if (n <= 0) // Invalid bound, return blank string
return "";
else if (n > String(str).length) // Invalid bound, return
return str; // entire string
else // Valid bound, return appropriate substring
return String(str).substring(0,n);
}
Right(string, length): Returns a specified number of characters from the
right side of a string
========================================================================
function Right(str, n)
/***
IN: str - the string we are RIGHTing
n - the number of characters we want to return
RETVAL: n characters from the right side of the string
***/
{
if (n <= 0) // Invalid bound, return blank string
return "";
else if (n > String(str).length) // Invalid bound, return
return str; // entire string
else { // Valid bound, return appropriate substring
var iLen = String(str).length;
return String(str).substring(iLen, iLen - n);
}
}
Mid(string, start, length): Returns a specified number of characters from a
string
============================================================================
function Mid(str, start, len)
/***
IN: str - the string we are LEFTing
start - our string's starting position (0 based!!)
len - how many characters from start we want to get
RETVAL: The substring from start to start+len
***/
{
// Make sure start and len are within proper bounds
if (start < 0 || len < 0) return "";
var iEnd, iLen = String(str).length;
if (start + len > iLen)
iEnd = iLen;
else
iEnd = start + len;
return String(str).substring(start,iEnd);
}
// Keep in mind that strings in JavaScript are zero-based, so if you ask
// for Mid("Hello",1,1), you will get "e", not "H". To get "H", you would
// simply type in Mid("Hello",0,1)
// You can alter the above function so that the string is one-based. Just
// check to make sure start is not <= 0, alter the iEnd = start + len to
// iEnd = (start - 1) + len, and in your final return statement, just
// return ...substring(start-1,iEnd)
InStr(str, SearchForStr) : Returns the location a character (charSearchFor)
was found in the string str
========================================================================
// InStr function written by: Steve Bamelis - steve.bamelis@pandora.be
function InStr(strSearch, charSearchFor)
/*
InStr(strSearch, charSearchFor) : Returns the first location a substring (SearchForStr)
was found in the string str. (If the character is not
found, -1 is returned.)
Requires use of:
Mid function
Len function
*/
{
for (i=0; i < Len(strSearch); i++)
{
if (charSearchFor == Mid(strSearch, i, 1))
{
return i;
}
}
return -1;
}