Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

Need help with this major problem

Avatar

Level 2

Someone please Help.  Pulling hair out here.  Trying to get this to work.

My goal is to have the following patterns

456-7990 with the result adding "(701)" 456-7890

4567990 with the result adding "(701)" 456-7890

1234567890 with the result (123) 456-7890

123 456 7890 with the result (123) 456-7890

(123)456-7890 with the result (123) 456-7890

(123) 456-7890 with the result (123) 456-7890

I know the code is ugly I've tried mashing code I've found around the forum.  I can't get the form1.Page1.telephone::exit - (JavaScript, client)

to work.  I have tried making it so with the code below and adding patterns

text{'('999')' 999-9999}|text{'('999')'999-9999}|text{999999-9999}|text{999-999-9999}|text{999'-'9999999} to the edit part.

and just text{'('999')' 999-9999} to the display.  I limited the length to 14 which gives and error that "The number of symbols in the specified pattern does not match the maximum number of characters".

I was also trying to incorporate if(str.indexOf(")") > -1)" to replace any "." that people may enter The incorporating isn't a huge deal

but I just need to the end result to be "(123) 456-7890" and the page is already packed to I can't add a separate box for area code.

form1.Page1.telephone::exit - (JavaScript, client)

if (!(this.isNull)) {

          var str = this.rawValue;

          var regExp2 = /^(\d{3})[-](\d{4})$/;

          var regExp = /^\d{10}$/;

          var regExp1 = /^\d{7}$/;

                  

          if (regExp1.test(str)) {// For input 1234567 for format (123) 456-7890

                   this.rawValue =  "701" + str;

                   m  = 1;

          }

          if (regExp2.test(str)) {// For input 123-4567 for format (123) 456-7890

                   this.rawValue =  "(701) " + str;

                   m  = 1;

          }

if (m  == 1) {

                   this.rawValue = "(" + str(0,3) + ") " + str(3,3) + "-" + str(6,4);

          }

if (regExp.test(str)) {

    this.rawValue = "(" + str.substr(0,3) + ") " + str.substr(3,3) + "-" + str.substr(6,4);

  }

  else {

    regExp  = /^[1-9]\d{2}\s\d{3}\s\d{4}$/;

    if (regExp.test(str)) {

      this.rawValue = "(" + str.substr(0,3) + ") " + str.substr(4,3) + "-" + str.substr(8,4);

    }

    else {

      regExp  = /^\([1-9]\d{2}\)\s?\d{3}\-\d{4}$/;

      if (!(regExp.test(str))) {

        xfa.host.messageBox("Please enter the telephone number in the format '(999) 999-9999'.");

        this.rawValue = null;

       xfa.host.setFocus(this);

      }

    }

  }

}

0 Replies

Avatar

Level 10

What determines a number should be displayed as "(701)" 456-7890 versus (123) 456-7890?

Steve

Avatar

Level 2

Nothing the form is only to be used in the "701" area.  Not valid elsewhere.

Avatar

Level 10

You could use the display pattern text{'(701) '999-9999} and limit the length to 7 digits for the field.

So the users don't need to enter the area code.

When they enter 1234567 the field will automatically display (701) 123-4567.