Hi Thomas,
Technically the regular expression check can hold that many numbers (you would join them into one pattern like ^(100001|100002|...)$, and there is no real size limit since it is stored in a text field), but I would advise against it for membership numbers, for one important reason:
HikaShop outputs the regex as the pattern attribute of the field in the page. So the full list of valid numbers ends up directly in the page source, and anyone can read all of them by viewing the source of the checkout page. For a club's membership numbers that usually defeats the purpose.
So:
- If the list is not confidential, the regex approach is fine. Format it as ^(number1|number2|...)$, keep the ^( and )$ anchors (HikaShop checks the value server side with an unanchored match, so without the anchors a value that merely contains a valid number would also pass), and set the field as required so the check always runs.
- If the numbers should stay private, the regex is not suitable, precisely because it exposes the whole list in the HTML. The clean way is a small custom plugin that validates the entered number on the server against a table (or against your club's system), so the list is never sent to the browser. That is custom development, but it is the only way to keep the list hidden and still validate the input.