CH04-L04 · praktické použitie

Čitateľné pravidlá pre text

Spojíte viac jednoduchých kontrol do jedného zrozumiteľného pravidla.

Všeobecný CELSpustiteľné tuZdokumentované
Čo sa naučím?

Viete zostaviť textovú validáciu, pri ktorej je každá podmienka samostatne overiteľná.

Kde si to vyskúšam?

Priamo nižšie v skúšobnom prostredí prehliadača.

Čo mám urobiť?

Spustite oba režimy, porovnajte pôvod ich hodnôt a potom dokončite úlohu.

Vyskúšajte CEL · pilot v prehliadači

Vyskúšajte oba spôsoby zadania hodnôt

Lokálne hodnoty môžete definovať v jednom výraze CEL alebo môžete premenné zadať ako vstup JSON. Všetko sa vykonáva vo vašom prehliadači.

Pilotná podmnožina CEL
Jeden samostatný výraz CELFunkcia cel.bind() priradí hodnote lokálny názov a vráti výsledok posledného výrazu.

cel.bind()cel.bind() je voliteľné oficiálne rozšírenie. Nie je súčasťou jadra jazyka CEL a hostiteľská aplikácia ho nemusí podporovať.

Tip: výraz spustíte aj klávesmi Ctrl/⌘ + Enter.
Výsledok

Aktívny príklad vyhodnotíte tlačidlom Spustiť CEL.

Rozsah pilotu: literály, explicitné konverzie, lokálne premenné vytvorené pomocou cel.bind(), premenné z JSON, zoznamy, mapy, prítomnosť, kolekčné makrá, základné kontroly reťazcov, časové hodnoty, aritmetika, porovnávanie, logika a podmienený operátor.

Čo budete robiť

Pripravený výraz spustíte v cvičisku vyššie, budete meniť vždy jeden vstup a vysvetlíte výsledok. Začnite v režime Iba CEL a potom rovnaké pravidlo zopakujte v režime CEL + JSON.

Ako to funguje

Čitateľné validačné pravidlo je postupnosť malých logických tvrdení. Toto pravidlo vyžaduje neprázdny text, najviac 20 kódových bodov Unicode a neprítomnosť lomky. Skrátené vyhodnotenie umožní skončiť hneď, keď je jedna povinná podmienka nepravdivá.

Prečítajte pripravený príklad

Pravidlo v režime CEL + JSON je:

name != '' && name.size() <= 20 && !name.contains('/')

Jeho vstup je:

{
  "name": "CEL guide"
}

Záložka Iba CEL obsahuje hodnoty aj pravidlo v jednom výraze. Povolené rozšírenie cel.bind() udrží každý názov lokálny v jeho poslednom argumente.

Vyhodnotenie krok za krokom

  1. Názov nie je prázdny.
  2. Jeho veľkosť neprekračuje 20 kódových bodov.
  3. Neobsahuje lomku, preto všetky tri podmienky vrátia true.

Vaša úloha

  1. Spustite platný názov.
  2. Použite prázdny reťazec a potom názov s /.
  3. Skúste názov dlhší než 20 znakov a zakaždým určte zlyhanú podmienku.

Očakávané pozorovanie: Každá neplatná hodnota vráti false bez osobitnej náhradnej vetvy.

Častá chyba

Neskrývajte nesúvisiace pravidlá do jedného nečitateľného regulárneho výrazu. Samostatné kontroly ukážu dôvod odmietnutia.

Zobraziť vysvetlenie

Nie. Reťazec obsahujúci iba medzery nie je prázdny; odstránenie medzier vyžaduje povolené rozšírenie alebo úpravu v hostiteľovi.

Kontrolná otázka

Odstráni toto pravidlo medzery pred kontrolou prázdnej hodnoty?

Hlavná myšlienka

Validáciu skladajte z jednoduchých podmienok a uveďte každú normalizáciu vykonanú mimo CEL.

Zdroje

  • CEL-DEV — oficiálny prehľad CEL.
  • CEL-LANG — oficiálna definícia jazyka CEL.
  • CEL-GO-BIND — oficiálna dokumentácia voliteľného rozšírenia cel.bind() použitého v samostatnej záložke.