• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 500
  • Last Modified:

validation of phone number

I wrote a code;
This code validate the10 digit telephone number; if the telephone number is incorrect or without a space after typing the area code in () , will generate an error.
I have two problems in this code
(i) In the area code field I want the just the area code without parenthisis()
(ii) It is giving me an alert messaged even if I type the right phone number format.

here is the code you can copy and paste the code and see result

<script language="javascript">
var n =  new Array(2),  f =  new Array(8),s =  new Array(5),a,b,c,d,e,g,h,i,j,r;

function validateThis(n){
 n = document.form1.fullText.value;
if ((n.charAt(0)=='(') && (n.charAt(4)==')') && (n.charAt(5)==' ') && (n.charAt(9)=='-'))
window.alert("Please enter a valid number jo jojo")
function SplitNum(n,s,f){
var k=n.split(" "), fir = k[0].length, las = k[1].length , q=k[0];
if( fir == 5 && las == 8){
      var s = k[0];
      var f = k[1];
      a = parseInt(s[1]);
      b = parseInt(s[2]);
      c = parseInt(s[3]);
      d = parseInt(f[0]);
      e = parseInt(f[1]);
      g = parseInt(f[2]);
      h = parseInt(f[4]);
      i = parseInt(f[5]);
      j = parseInt(f[6]);
      r = parseInt(f[7]);
 var jk=s.split(")");
      document.form1.areaText.value =   jk;
      document.form1.numText.value = f ;
      else window.alert("Enter a valid number, quit playing.")

function ValNum(){
if(isNaN(a) || isNaN(b) || isNaN(c) || isNaN(d) || isNaN(e) || isNaN(g) || isNaN(h) || isNaN(i) || isNaN(j) || isNaN(r) )
window.alert("Enter a valid number hey bobo")

<form name="form1" id="form1" method="post" action="">
<TD ALIGN="center"><p>Enter a phone number</p>
  <p>[In the form (555) 555-5555]</p></TD>
<TD ALIGN="center"><input name="fullText" type="text" id="fullText" /></TD>
<TD ALIGN="center" COLSPAN="1"><input name="valButt" type="button" id="valButt" value="validate" onClick = "validateThis()"></TD>

<TD ALIGN="center">Area Code: </TD>
<TD ALIGN="center"><input name="areaText" type="text" id="areaText" /></TD>
<TD ALIGN="center">Number: </TD>
<TD ALIGN="center"><input name="numText" type="text" id="numText" /></TD>

1 Solution
In this situation, I like to help users.  For the first input, for area, I would do this:

<input name="areaText" type="text" id="areaText" onblur="checkArea(this)">

The script would strip out the non-numeric entries, if any, and check for length:

function checkArea(obj) {
   var val = this.value;
   if (val == "") { return; }  // blank, which is okay
   val = val.replace(/\D/g,"");
   this.value = val;
   if (val.length > 0 && val.length != 3) {
      alert("The area code must be three digits.");

This way, the user gets immediate feedback on the entry.

You can always use this test on the final submit:

val.match(/\D/) to determine whether there somehow any NON-numeric characters in the string.
sfareedAuthor Commented:
Thanks for you reply but I can't do that because i have to do the form in the same way as I shown in the code.
This my college project and I can't change the text field.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

Tackle projects and never again get stuck behind a technical roadblock.
Join Now