From 6026478cfa6ae5042a028bf3624eb087dfe3db5f Mon Sep 17 00:00:00 2001 From: Andrew Croce Date: Tue, 4 Sep 2018 11:14:58 -0400 Subject: [PATCH] Add validations/masking for PE number, treasury code, and BA code --- js/lib/input_validations.js | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/js/lib/input_validations.js b/js/lib/input_validations.js index 3806af8c..04b870ad 100644 --- a/js/lib/input_validations.js +++ b/js/lib/input_validations.js @@ -52,5 +52,31 @@ export default { match: /^\d{10}$/, unmask: [], validationError: 'Please enter a 10-digit DoD ID number' + }, + peNumber: { + mask: val => { + if (val.length <= 7) return ['0',/\d/,'0',/\d/,/\d/,/\d/,/\d/,/[a-z,A-Z]/] + if (val.length === 8) return ['0',/\d/,'0',/\d/,/\d/,/\d/,/\d/,/[a-z,A-Z]/,/[a-z,A-Z]/] + return ['0',/\d/,'0',/\d/,/\d/,/\d/,/\d/,/[a-z,A-Z]/,/[a-z,A-Z]/,/[a-z,A-Z]/] + }, + match: /(0\d)(0\d)(\d)(\d{2})([a-z,A-Z]{1,3})/, + unmask: ['_'], + validationError: 'Please enter a valid PE number. Note that it should be 7 digits followed by 1-3 letters, and should have a zero as the first and third digits.' + }, + treasuryCode: { + mask: createNumberMask({ prefix: '0', allowDecimal: false, allowLeadingZeroes: true, includeThousandsSeparator: false }), + match: /^0*([1-9]{4}|[1-9]{6})$/, + unmask: [], + validationError: 'Please enter a valid Program Treasury Code. Note that it should be a four digit or six digit number, prefixed by one or more zeros.' + }, + baCode: { + mask: val => { + if (val.length === 1) return [/\d/] + if (val.length === 2) return [/\d/, /\d/] + return [/\d/,/\d/,/[a-z,A-Z]/] + }, + match: /[0-9]{2}\w?$/, + unmask: [], + validationError: 'Please enter a valid BA Code. Note that it should be two digits, followed by a letter.' } }