Help with regular expression...

N

Noozer

Not sure which newgroup would be best... but since this is being used in a
Javascript function on a web page I guess it could go here...

I'm looking for some help with a regular expression. Users can enter an
account number with or without hyphens. Format for an account number is
000-0000-0000.

Is there a regular expression I can use to ensure that the hyphens are
always there?
User input ->Result
12312341234 -> 123-1234-1234
123-12341234 -> 123-1234-1234

How about to always remove hyphens.
User input -> Result
123-1234-1234 -> 12312341234
1231234-1234 -> 12312341234

Finally, any regular expression to ensure that only 11 characters have been
entered and only digits have been entered. What changes would be need to
accept digits AND hyphens.
User input -> Result
123-1234-1234 = False
12312341234 = True
1231234ABCD = false
1231234123 = false
...with changes...
123-1234-1234 = True
 
M

Michael Winter

Not sure which newgroup would be best... but since this is being used in a
Javascript function on a web page I guess it could go here...

This group takes many subjects, but a scripting question is still a
scripting question, and I'd have asked in clj.

[snip]
Is there a regular expression I can use to ensure that the hyphens are
always there?
User input ->Result
12312341234 -> 123-1234-1234
123-12341234 -> 123-1234-1234

As simply a test:

/^\d{3}-\d{4}-\d{4}$/.test(accountNumber)

See below for the conversion form.
How about to always remove hyphens.
User input -> Result
123-1234-1234 -> 12312341234
1231234-1234 -> 12312341234

accountNumber = accountNumber.replace(/^(\d{3})-?(\d{4})-?(\d{4})$/,
'$1$2$3');

If you inserted hyphens into the string literal, you could do the reverse.

Note that the hyphens in the regular expression are followed by a
question mark (?), which indicates that they are optional. The
assignment statement above would cope with both input forms you presented.
Finally, any regular expression to ensure that only 11 characters have been
entered and only digits have been entered.
/^\d{11}$/

What changes would be need to accept digits AND hyphens.

I think the first case would cover that.

Mike
 
N

Noozer

Thanks! It's GREATLY appreciated!

Michael Winter said:
Not sure which newgroup would be best... but since this is being used in a
Javascript function on a web page I guess it could go here...

This group takes many subjects, but a scripting question is still a
scripting question, and I'd have asked in clj.

[snip]
Is there a regular expression I can use to ensure that the hyphens are
always there?
User input ->Result
12312341234 -> 123-1234-1234
123-12341234 -> 123-1234-1234

As simply a test:

/^\d{3}-\d{4}-\d{4}$/.test(accountNumber)

See below for the conversion form.
How about to always remove hyphens.
User input -> Result
123-1234-1234 -> 12312341234
1231234-1234 -> 12312341234

accountNumber = accountNumber.replace(/^(\d{3})-?(\d{4})-?(\d{4})$/,
'$1$2$3');

If you inserted hyphens into the string literal, you could do the reverse.

Note that the hyphens in the regular expression are followed by a
question mark (?), which indicates that they are optional. The
assignment statement above would cope with both input forms you presented.
Finally, any regular expression to ensure that only 11 characters have been
entered and only digits have been entered.
/^\d{11}$/

What changes would be need to accept digits AND hyphens.

I think the first case would cover that.

Mike
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,764
Messages
2,569,564
Members
45,039
Latest member
CasimiraVa

Latest Threads

Top