Hello all,

I need a script that will validate a text field which contains units of an
apt complex.  Valid value would be 1,2,3,4 or 1-4 or 1a,2b,3c,4b  (coma
delimited list with range).   All other formats would be invalid.  The
following is what I have so far but doesn't seem to work all that well.  It
doesn't catch invalid formats if the user puts in characters after a number
(1=, 1&, 1*, -1..etc..)  Any help would be appreciated, thanks in advance.

        var pos = 0;
        var nextpos = 0;
        var str = document.newCaseInfo.unitInDetail.value;      

        nextpos = str.indexOf(",",pos);

        for(var i=0; nextpos !=-1; i++)
        {
                if(!isAlphaNumeric(str.substring(pos,nextpos)))
                {
                        if(!isNumSpan(str.substring(pos,nextpos)))
                        {
                                notifyClientOnError();
                                return false;
                        }
                }
                pos = nextpos+1;
                nextpos = str.indexOf(",",pos);                 
        }
        if(!isAlphaNumeric(str.substring(pos,str.length)))
        {
                if(!isNumSpan(str.substring(pos,str.length)))
                {
                        notifyClientOnError();
                        return false;
                }
        }

        return true;
}

function notifyClientOnError()
{
        alert('Please check the Units Details Format...try again');
}

function isInteger(s)
{       
        for (i = 0; i < s.length; i++)
        {   
                var c = s.charAt(i);
                if (!isDigit(c)) 
                {
                        return false;
                }
        }
        return true;
}

function isDigit(myChar) 
{ 
        return (myChar >= "0") && (myChar <= "9"); 
}

function isNumSpan(numStr)
{
        var npos = 0;
        var nextnpos = 0;

        nextnpos = numStr.indexOf("-",npos);

        if(!isInteger(numStr.substring(npos,nextnpos)))
                return false;

        if(!isInteger(numStr.substring(nextnpos+1,numStr.length)))
                return false

        return true
}

function isAlphaNumeric(string) 
{   
        var hasDash = string.indexOf("-");
        
        if(hasDash==-1)
        {
                re = /[0-9]+[A-Za-z]*/
                return  re.exec(string);
        }
        else 
                return false;
}

______________________________________________________________________
Get the mailserver that powers this list at http://www.coolfusion.com
FAQ: http://www.thenetprofits.co.uk/coldfusion/faq
Archives: http://www.mail-archive.com/[email protected]/
Unsubscribe: http://www.houseoffusion.com/index.cfm?sidebar=lists

Reply via email to