Tahiti 3.5.x
Mask types:
- N - number
- C - character
S - not used -> error
Mask check
- Check length (data mast be longer or equal mask)
- Check each character:
if '9' -> have to be digit
if '*' or '!' or '@' or '#" -> continue
- else fail
Correct function
- if empty mask
check if not longer -> remove unwanted characters
- return
- iterate mask and data
if '*' -> break
if '!' -> toUpper
if '#' -> have to be ascii letter or number, remove invalid char
if '@' -> have to be ascii letter, remove invalid char
if 'c' -> character -> continue
if 'C' -> transform to upper case -> continue
if '9' -> check number, remove invalid char
- check and correct length against max. size
- return corrected
Tahiti 4.x
Mask check
- Count min. data length from mask (number of 'c', 'C', '9')
- Check length (data mast be longer then min. data length)
Correct function
input or mask empty -> return false
- iterate mask and data
if '*' -> break
if '!' -> toUpper
if '#' -> have to be ascii letter or number, remove invalid char
if '@' -> have to be ascii letter, remove invalid char
if 'c' -> character -> continue
if 'C' -> transform to upper case -> continue
if '9' -> check number, remove invalid char
- check and correct length against max. size
- return corrected