I have a patient questionnaire, at the top I have ‘patient code’ so we can anonymise and link patients using different forms. The code consists of letter ‘C’ or ‘P’ (patients or controls) and then a number e.g. C11, P15 etc. I was wondering if there was a way I can make the answer only valid if it includes either a P or a C, plus a number (ANY number) to help avoid errors.
Thank you!
Try a regex constraint; eg
constraint = regex(., '^[CP][0-9]+$')
[note: you didnt specify if ‘0’ is considered a valid number, nor the min/max # of digits. Both would affect the regex expression needed]
2 Likes
Hi there
Thank you so much! I don’t think I need a min or max - if I did what would i input? e.g. if min was 1 and max was 5?
Thank you!
You will need to add {min, max} to your regex e.g.
constraint = regex(., '^[CP][0-9]{1,5}+&
)`
Stephane
1 Like
if by this you mean you want at least 1 digit and at most 5 digits, then @stephanealoo change above should suffice. However, if you mean a number between 1 and 5, then you’d have to check for just those digits, ie
regex(., '^[CP][1-5]$
)`
Basically, regex’s check a string’s character contents, and do not perform actual numeric comparisons per se. So if, for example, you wanted a number between 42 and 871, that actually involves a pretty messy regex to check for valid combinations of digits (and I’d probably suggest a different approach…)
2 Likes