var reEmpty  = /^\s+$/;
var reEmail  = /^.+\@.+\..+$/;
var reNumber = /^\d+$/;

function trim(str)
{
	var strRet  = "";
	var nLength = str.length;
	var nFirst  = 0;
	var nLast   = nLength - 1;
	
	while( (nFirst < nLength) && (str.charAt(nFirst) <= ' ') )
	{
		nFirst++;
	}
	
	while( (nLast > nFirst) && (str.charAt(nLast) <= ' ') )
	{
		nLast--;
	}
	
	if(nFirst <= nLast)
	{
		strRet = str.substring(nFirst, nLast + 1);
	}
	
	return strRet;
}

function isEmpty(str)
{
	var bRet = true;
	
	if(str != null)
	{
		if(str.length != 0)
		{
			bRet = reEmpty.test(str);
		}
	}
	
	return bRet;
}

function eraseChars(strSource, strErase, bWhitespace)
{
	var strRet  = "";
	var nIndex  = 0;
	var nLength = strSource.length;
	var ch;
	
	while(nIndex < nLength)
	{
		ch = strSource.charAt(nIndex);
		
		if( (strErase.indexOf(ch) == -1) &&
		    !(bWhitespace && (ch <= ' ') )
		  )
		{
			strRet += ch;
		}
		
		nIndex++
	}
	
	return strRet;
}

function isNumber(str)
{
	var bRet = false;
	
	if(!isEmpty(str))
	{
		bRet = reNumber.test(trim(str));
	}
	
	return bRet;
}

function isZIPCode(str)
{
	var bRet = false;
	
	if(!isEmpty(str))
	{
		bRet = isNumber(str) && (str.length == 5 || str.length == 9);
	}
	
	return bRet;
}

function isUSPhoneNumber(str)
{
	var bRet = false;
	var strTest;
	
	if(!isEmpty(str))
	{
		strTest = eraseChars(str, "-().", true);

		bRet = isNumber(strTest) && (strTest.length == 10);
	}
	
	return bRet;
}

/**
 * DHTML phone number validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */

// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkInternationalPhone(strPhone){
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function ValidatePhoneForm(Phone){
	
	if ((Phone.value==null)||(Phone.value=="")){
		alert("Please Enter your Phone Number")
		Phone.focus()
		return false
	}
	if (checkInternationalPhone(Phone.value)==false){
		alert("Please Enter a Valid Phone Number")
		Phone.value=""
		Phone.focus()
		return false
	}
	return true
 }

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
<!-- Original:  Roman Feldblum (web.developer@programmer.net) -->

<!-- Begin
var n;
var p;
var p1;
function ValidatePhone(){
p=p1.value
if(p.length==3){
	//d10=p.indexOf('(')
	pp=p;
	d4=p.indexOf('(')
	d5=p.indexOf(')')
	if(d4==-1){
		pp="("+pp;
	}
	if(d5==-1){
		pp=pp+")";
	}
	//pp="("+pp+")";
	document.frmBusinessEdit.txtPhone.value="";
	document.frmBusinessEdit.txtPhone.value=pp;
}
if(p.length>3){
	d1=p.indexOf('(')
	d2=p.indexOf(')')
	if (d2==-1){
		l30=p.length;
		p30=p.substring(0,4);
		//alert(p30);
		p30=p30+")"
		p31=p.substring(4,l30);
		pp=p30+p31;
		//alert(p31);
		document.frmBusinessEdit.txtPhone.value="";
		document.frmBusinessEdit.txtPhone.value=pp;
	}
	}
if(p.length>5){
	p11=p.substring(d1+1,d2);
	if(p11.length>3){
	p12=p11;
	l12=p12.length;
	l15=p.length
	//l12=l12-3
	p13=p11.substring(0,3);
	p14=p11.substring(3,l12);
	p15=p.substring(d2+1,l15);
	document.frmBusinessEdit.txtPhone.value="";
	pp="("+p13+")"+p14+p15;
	document.frmBusinessEdit.txtPhone.value=pp;
	//obj1.value="";
	//obj1.value=pp;
	}
	l16=p.length;
	p16=p.substring(d2+1,l16);
	l17=p16.length;
	if(l17>3&&p16.indexOf('-')==-1){
		p17=p.substring(d2+1,d2+4);
		p18=p.substring(d2+4,l16);
		p19=p.substring(0,d2+1);
		//alert(p19);
	pp=p19+p17+"-"+p18;
	document.frmBusinessEdit.txtPhone.value="";
	document.frmBusinessEdit.txtPhone.value=pp;
	//obj1.value="";
	//obj1.value=pp;
	}
}
//}
setTimeout(ValidatePhone,100)
}
function getIt(m){
n=m.name;
//p1=document.forms[0].elements[n]
p1=m
ValidatePhone()
}
function testphone(obj1){
p=obj1.value
//alert(p)
p=p.replace("(","")
p=p.replace(")","")
p=p.replace("-","")
p=p.replace("-","")
//alert(isNaN(p))
if (isNaN(p)==true){
alert("Check phone");
return false;
}
}
//  End -->