Narzędzia użytkownika

Narzędzia witryny


validacja

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
validacja [2023/10/12 15:16] – utworzono - edycja zewnętrzna 127.0.0.1validacja [2024/09/15 16:22] (aktualna) – edycja zewnętrzna 127.0.0.1
Linia 1: Linia 1:
 ====== Walidacja ====== ====== Walidacja ======
 +===== NIP =====
 +<code php>
 +function isNipValid(string $nip): bool
 +{
 +    $nip = preg_replace('/[\s-]/', '', $nip);
 +    
 +    if (preg_match('/^[0-9]{10}$/', $nip) !== 1) {
 +        return false;
 +    }
 +    
 +    $sum = 0;
 +    $weights = [6, 5, 7, 2, 3, 4, 5, 6, 7];
 +    for ($i = 0; $i < 9; $i++) {
 +        $sum += $nip[$i] * $weights[$i];
 +    }
 +    
 +    return $sum % 11 === (int) $nip[9];
 +}
 +</code>
 +===== Walidacja waluty =====
 +**W modelu**  
 +
 +poniższa reguła dopuszcza tylko liczby dodatnie z max 2 miejsca po przecinku
 +<code php>
 +[['wplata', 'dofinansowanie'], 'match', 'pattern' => '/^\d+(\.\d{1,2})?$/'],
 +</code>
 +
 +poniższa reguła dopuszcza liczby dodatnie i ujemne z max 2 miejsca po przecinku
 +<code php>
 + [['wplata', 'dofinansowanie'], 'match', 'pattern' => '/^-?\d+(\.\d{1,2})?$/'],
 +</code>
 +
 +
 +Dodatkowo część całkowita od dziesiętnej powinna być oddzielona kropką.  
 +W formularzu należy dopisać kod JavaScript zamieniający przecinek na kropkę w locie
 +
 +<code php>
 +...
 +<?= $form->field($model, 'wplata', ['addon' => ['append' => ['content' => ' zł.']]])->textInput(['maxlength' => true, 'class' => 'coma']) ?>
 +<?= $form->field($model, 'dofinansowanie', ['addon' => ['append' => ['content' => ' zł.']]])->textInput(['maxlength' => true, 'class' => 'coma']) ?>
 +...
 +
 +
 +<?php
 +
 +$this->registerJS(<<<JS
 +    
 + $('.coma').on('keyup', function(e){
 +            $(this).val($(this).val().replace(/[,]/g, '.'));
 +        });        
 +JS);
 +
 +</code>
  
 ---- ----
validacja.1697116566.txt.gz · ostatnio zmienione: 2024/09/15 16:22 (edycja zewnętrzna)