This module is within the scope of WikiProject Templates, a group dedicated to improving the maintenance of Wikipedia's templates. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.TemplatesWikipedia:WikiProject TemplatesTemplate:WikiProject TemplatesTemplates
Lua patterns
Is it possible to add a function to use Lua patterns and also limit the number? For example, if the parameter |date= can be between |date1= and |date8= and using regexp1 = "date[%d]+" and something like reglimit1=8 to limit the allowed parameters? Gonnym (talk) 12:26, 23 June 2024 (UTC)[reply]
Why not write a specific pattern? regexp1="date[1-8]"
You could also look at the check at {{Interlinear}} for a fun example. It supports values of 1–99 for some parameters (actually 1 and higher, but I'm hoping nobody will put in more than 99 unnamed parameters). – Jonesey95 (talk) 19:43, 24 June 2024 (UTC)[reply]
The pattern [1-9][%d]* (should probably be written [1-9]%d*) is not limited to the range 1–99. %d* means 0 or more digits. So, as long as the first digit is not zero, any number of digits (within reason) will be accepted. If you want to actually limit the range to 1–99 you might use %f[%d][1-9]%d?$ where (right to left) $ anchors the pattern to the end of the parameter name string; %d? means 0 or 1 digits; [1-9] requires the first digit of the enumeration to be in the range 1–9; %f[%d] is the frontier pattern where the next character is a digit but the previous character is not a digit – in abc123 the pattern finds the boundary between c (parameter name) and 1 (first digit of the enumerator).
Done. Also added require ('strict') which will catch other globals. Keep an eye on Category:Pages with script errors to see if the addition reveals other globals.
What is it that I'm missing? If the problem is caused by something that happens in Module:WikiProject banner, that is where the fix should be applied. Adding miscellaneous one-off patches to this module is not a good idea. When you switch to the default category, you know that the preferred category does not exist so why link to it? Link to the preferred category only when it exists.