.regularExpression()
is hardcoded 3 times in the script, is there a way to dynamically attach it from loops from variable const regex = ['reg1', 'reg2', 'reg3']
?
Usage:
{ text: Check.string() .regularExpression(/reg1/) .regularExpression(/reg2/) .regularExpression(/reg3/) }
Advertisement
Answer
You can use the reduce
method:
const regex = ['reg1', 'reg2', 'reg3']; { text: regex.reduce((check, regex) => check.regularExpression(new RegExp(regex)), Check.string()) }
In this way, starting from the initial value Check.string()
, you will iteratively chain new regular expressions, accordingly to your array.
Alternatively, you can use a plain for-loop:
let check = Check.string(); for (const item of regex) { check = check.regularExpression(new RegExp(regex)); } { text: check }