# TIL Regex for Decimal Points

I needed a regular expression for checking if a number has 1 decimal point.
Here’s the regular expression ChatGPT came up with: `/^\d+(\.\d{1})?$/`

Of course, it wasn’t actually the correct requirement. It needed to check if it’s an integer (no decimal points). And if it is a decimal point, it can be at most one.

I screwed up and tried to pair two quantifiers together.
So if you have `?`

and you want to use `{0,1}`

, you can’t do `{0.1}?`

.

And I didn’ need the group, although in retrospect, using the quantifier on the
group works, but removing the group makes the `?`

obsolete.

Here’s what I ultimately came up with.

```
function validateToOneOrNoDecimalPoint(number) {
// Regular expression to match numbers with either 0 or 1 decimal point (optional)
const regex = /^\d+\.?\d{0,1}$/;
return regex.test(number);
}
// Example usage:
console.log(validateToOneOrNoDecimalPoint(3.5)); // true
console.log(validateToOneOrNoDecimalPoint(10)); // true
console.log(validateToOneOrNoDecimalPoint(2.34)); // false (more than one decimal point)
console.log(validateToOneOrNoDecimalPoint(5.)); // true (no decimal point)
console.log(validateToOneOrNoDecimalPoint(5)); // true (no decimal point)
```

And I added even more test cases, and used `regex.match`

over `regex.test`

.
Subtle difference.

Written by Jeremy Wong and published on .