Exemplo de scripts para validadores personalizados

Aqui são fornecidos alguns exemplos de scripts de validadores personalizados, incluindo:
O script a seguir é um validador personalizado básico que valida um identificador de dados de cinco dígitos recuperando o quinto e os primeiros quatro dígitos, atribuindo-os a variáveis e comparando esses valores com o tamanho de dados esperado.
Validador básico personalizado de scripts
Parâmetro
Descrição
Padrão
\d{5}
Normalizador
Não faça nada
Script personalizado
$s1 = getStringValueAt($normalizedMatch, 0x4,1); // Get the 5th digit $s2 = getStringValueAt($normalizedMatch, 0x0,4); // Get the first 4 digits $size1 = datalength($s1);// Calculate the length; it should be 1 $size2 = datalength($s2);// Calculate the length; it should be 4 assertTrue($size1 == 1); // Check if size = 1 assertFalse($size2 != 4); // Check if size is anything other than 4
O seguinte script personalizado valida uma string de 10 caracteres no formato LL/MM/DD/AAAA. Os primeiros dois caracteres são as iniciais da pessoa e são excluídos da validação. Os dígitos restantes são salvos em variáveis separadas, calculados por um multiplicador e adicionados. Em seguida, eles são comparados para garantir que estejam em conformidade com um dia (menor que 32), mês (menor que 13) e ano (menor que 2051) adequados.
Validador personalizado de scripts de 10 caracteres
Parâmetro
Descrição
Padrão
\l{2}\d{8}
Normalizador
Dígitos e letras
Script personalizado
$m1 = getIntegerAt($normalizedMatch, 0x2, 1); $m2 = getIntegerAt($normalizedMatch, 0x3, 1); $d1 = getIntegerAt($normalizedMatch, 0x4, 1); $d2 = getIntegerAt($normalizedMatch, 0x5, 1); $y1 = getIntegerAt($normalizedMatch, 0x6, 1); $y2 = getIntegerAt($normalizedMatch, 0x7, 1); $y3 = getIntegerAt($normalizedMatch, 0x8, 1); $y4 = getIntegerAt($normalizedMatch, 0x9, 1); $m1 = multiply($m1, 10); $d1 = multiply($d1, 10); $y1 = multiply($y1, 1000); $y2 = multiply($y2, 100); $y3 = multiply($y3, 10); $Day = Add($d1, $d2); $Month = Add($m1, $m2); $Year = Add($y1, $y2, $y3, $y4); assertTrue($Day > 0); assertTrue($Day <= 31); assertTrue($Month > 0); assertTrue($Month <= 12); assertTrue($Year >= 1910); assertTrue($Year <= 2050);
O seguinte validador de script personalizado pode ser usado para verificar a correspondência com um número de identificação turco. Uma identificação turca é um número de 11 dígitos. O primeiro dígito não pode ser zero. Os 10º e 11º dígitos são dígitos de verificação para detecção de erros.
Validador personalizado de scripts de identificação turca
Parâmetro
Descrição
Padrão
\d{11}
Normalizador
Dígitos apenas
Script personalizado
$k1 = getIntegerAt($normalizedMatch, 0x0, 1); $k2 = getIntegerAt($normalizedMatch, 0x1, 1); $k3 = getIntegerAt($normalizedMatch, 0x2, 1); $k4 = getIntegerAt($normalizedMatch, 0x3, 1); $k5 = getIntegerAt($normalizedMatch, 0x4, 1); $k6 = getIntegerAt($normalizedMatch, 0x5, 1); $k7 = getIntegerAt($normalizedMatch, 0x6, 1); $k8 = getIntegerAt($normalizedMatch, 0x7, 1); $k9 = getIntegerAt($normalizedMatch, 0x8, 1); $c1 = getIntegerAt($normalizedMatch, 0x9, 1); $c2 = getIntegerAt($normalizedMatch, 0xA, 1); $iOdds = add($k1, $k3, $k5, $k7, $k9); $iEvens = add($k2, $k4, $k6, $k8); $iOddsMltSeven = multiply($iOdds, 7); $iEvensMltNine = multiply($iEvens, 9); $iOddsMltEight = multiply($iOdds, 8); $iMidSum = add($iOddsMltSeven, $iEvensMltNine); $iCheck1 = mod($iMidSum, 10); assertTrue($iCheck1 == $c1); $iCheck2 = mod($iOddsMltEight, 10); assertTrue($iCheck2 == $c2);