Simple tip calculator code
Overall this is good code, but there are several things that could be improved.
Encapsulation
The code should be encapsulated in an IIFE in order to isolate it from other scripts in the page, which, for example, could be using the same variable names.
Also the HTML should be surrounded by an element with a unique identifier (e.g. &lt;div id=&quot;tip-calculator&quot;&gt; ... &lt;/div&gt;) to allow selecting common elements, such as button or p, but also .tip or .total, which can appear elsewhere on the page outside the context of the calculator and adjust the selectors to represent that.
const button = document.querySelector('#tip-calculator button'),
    bill = document.querySelector('#tip-calculator #amount'), 
    // ...

or
const tipCalculator = document.querySelector('#tip-calculator'),
    button = tipCalculator.querySelector('button'),
    bill = tipCalculator.querySelector('#amount'), 
    // ...

Conventions
It is convention to use one const/let declaration per variable.
(Potential) bugs
The regex used to validate the bill value only forbids the letters A to Z. Any other non-digits or other errors (such as more than one decimal separator) are not caught. The service rating and number of people are not validated at all.
You should be explicitly converting the string values from the input fields into numbers. Currently you are lucky that you are only using multiplication and division on the value, so that the strings are automatically converted, but if you, for example, would addition you'd have an error (&quot;1&quot; + &quot;2&quot; === &quot;12&quot; not 3).
You are toggling the visibility of the paragraphs on each successful calculation, that so every second calculation does not show a result.
Other possible improvements
You are not using the variables tipAmount and totalCostPP outside the event handler (or even the final else block) and their value doesn't change in there, so it would be better to declare them as const inside that block instead of outside the function.
In order to simplify the validation and conversion of the number values you should be using &lt;input type=&quot;number&quot;&gt; with appropriate min, max and step attributes. It automatically forces the user only to enter valid numbers and offers the valueAsNumber property which gives you the value already converted to a number.