Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

119
Views
JavaScript - Regex with decimal values

I am trying to create a regular expression that validates an red/green/blue value expression. The expressions that I need my regular expression to match include:

  1. rgb(1, 10, 100)
  2. rgb(100, 10, 1)
  3. rgb(1,2,3)
  4. rgba(1, 2, 3, .75)
  5. rgba(1, 2, 3, 0.75)
  6. rgba(1, 2, 3, 0)
  7. rgba(1, 2, 3, 1)

Currently, I have the following regular expression:

^rgba?\((([+-]?\d+(\.\d+)?),\s*){2}[+-]?\d+(\.\d+)?(,\s*(0?\.\d|[01]))?\)$

This expression works for #1, #2, #3, #6, and #7. However, it fails for #4 and #5. I keep staring at the last group. To me, it looks like it should accept a decimal. Clearly, it's not though. What am I doing wrong?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

The problem in your regular expression, is that your expression doesn't allow for values greater than length 1 behind the last decimal point. Considering the original regular expession:

^rgba?\((([+-]?\d+(\.\d+)?),\s*){2}[+-]?\d+(\.\d+)?(,\s*(0?\.\d|[01]))?\)$

You will get a positive value for rgba(1, 2, 35.132, 0.7), but negative for rgba(1, 2, 35.132, 0.75).

The solution is adding a star to the last \d digit denotator, indicating that there can be any amount of digits. A plus would be even better, as it would detect faulty values that have 0 digits behind a decimal point, by requiring at least 1 of the \d instance.

^rgba?\((([+-]?\d+(\.\d+)?),\s*){2}[+-]?\d+(\.\d+)?(,\s*(0?\.\d*|[01]))?\)$
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!