Esempio Online Anteprima
Descrizione: Diverse combinazioni di input controllato
Sorgente PHP: examples/regexp/regexp.php
Sorgente XML: examples/regexp/regexp.xml
Per input controllato di un campo si intende la possibilità di inserire una sorta di "validazione" negli oggetti per il quale è previsto l'inserimento dati da parte dell'utente. Esistono due categorie di controllo applicabili sul singolo oggetto:
Controllo sul singolo carattere: la verifica verrà svolta su ogni carattere inserito, l'utente non avrà la possibilita di inserire caratteri non ammessi perché alla pressione di un carattere non valido esso non verrà accettato e quindi visualizzato. Per utilizzare questo tipo di controllo basta aggiungere agli oggetti che lo prevedono l'attributo keypress="tipocontrollo", dove tipo controllo può assumere i valori di:
| number | // Solo caratteri numerici |
| nonumber | // Escluso caratteri numerici |
| alphanumeric | // Solo caratteri alphanumerici |
| noalphanumeric | // Escluso caratteri alphanumerici |
| alphabetic | // Solo caratteri alfabetici |
| loweralphabetic | // Solo caratteri alfabetici minuscoli |
| upperalphabetic | // Solo caratteri alfabetici maiuscoli |
| decimal | // Solo caratteri decimali |
| permission | // Numerico da 0-7
|
Nell'attributo keypress si può anche specificata direttamente un'espressione regolare, se ad esempio volessi accettare solo caratteri maiuscoli dalla A alla P basterebbe scrivere:
keypress="[A-P]"
Controllo sulla stringa: la verifica sulla correttezza verrà svolta su tutta la stringa non appena l'oggetto perderà il focus. per utilizzare il controllo su stringa settare l'attributo blur="tipocontrollo", dove tipo controllo può assumere i valori di:
| number | // Solo caratteri numerici |
| decimal | // Solo caratteri decimali |
| ip | // Indirizzo IP |
| email | // Indirizzo e-mail |
| cf | // Codice fiscale |
| piva | // P.Iva |
| permission | // Permission |
Nell'attributo blur si può anche specificata direttamente un'espressione regolare, se ad esempio volessi accettare solo un numero compreso tra 000 e 999 basterebbe scrivere:
blur="^[0-9]{3}$"
Discorso a parte per il controllo sulla lunghezza della stringa minima o massima, in questo caso utilizzare gli appositi attributi minlength="lunghezza minima" e maxlength="lunghezza massima".
I controlli possono essere utilizzati in combinazione tra di loro in particolare è possibile specificare contemporaneamente controllo su carattere, controllo su stringa, lunghezza minima e lunghezza massima.
La classe che si occupa di gestire input controllato è clsRegExp(js/regexp.js), se lo si ritiene opportuno è possibile inserire nuove espressioni regolari.
<?php
/**
* PHP Source File
* @author Alyx Association <info@alyx.it>
* @version 1.0
* @copyright Alyx Association 2008-2010
* @license GNU Public License
*/
require_once("./../../class/system.class.php");
$system = new ClsSystem(true);
$xml = new ClsXML("regexp_text.xml");
$event = new ClsEvent($xml);
$event->managerRequest();
?>
<?xml version="1.0" encoding="utf-8"?>
<jamp>
<page typeobj="page" title="JAMP - Esempio d'uso delle espressioni regolari" icon="../../favicon.ico" loaddata="true">
<tabs1 typeobj="tabs" width="600px" height="600px" selected="tab1" align="left" >
<tab1 typeobj="tab" label="Espressioni regolari(SUL SINGOLO CARATTERE)" >
<digit_number typeobj="text" label="\nSolo caratteri numerici:\n" keypress="number" size="50" />
<digit_nonumber typeobj="text" label="\nEscluso caratteri numerici:\n" keypress="nonumber" size="50" />
<digit_alphanumeric typeobj="text" label="\nSolo caratteri alphanumerici:\n" keypress="alphanumeric" size="50" />
<digit_noalphanumeric typeobj="text" label="\nEscluso caratteri alphanumerici:\n" keypress="noalphanumeric" size="50" />
<digit_alphabetic typeobj="text" label="\nSolo caratteri alfabetici:\n" keypress="alphabetic" size="50" />
<digit_loweralphabetic typeobj="text" label="\nSolo caratteri alfabetici minuscoli:\n" keypress="loweralphabetic" size="50" />
<digit_upperalphabetic typeobj="text" label="\nSolo caratteri alfabetici maiuscoli:\n" keypress="upperalphabetic" size="50" />
<digit_decimal typeobj="text" label="\nSolo caratteri decimali(separatori miglia e decine compresi):\n" keypress="decimal" size="50" />
<digit_free typeobj="text" label="\nEspessione regolare libera(esempio: solo lettere dalla a alla g):\n" keypress="[a-g]" size="50" />
</tab1>
<tab2 typeobj="tab" label="Espressioni regolari(SULLA STRINGA)" >
<word_number typeobj="text" label="\nSolo caratteri numerici:\n" blur="number" size="50" />
<word_decimal typeobj="text" label="\nSolo caratteri decimali:\n" blur="decimal" size="50" />
<word_ip typeobj="text" label="\nIndirizzo IP:\n" blur="ip" size="50" />
<word_email typeobj="text" label="\nIndirizzo e-mail:\n" blur="email" size="50" />
<word_cf typeobj="text" label="\nCodice fiscale:\n" blur="cf" size="50" />
<word_complete typeobj="text" label="\nMulti controllo(alfanumerici, codice fiscale, minimo 16, massimo 16):\n" blur="cf" keypress="alphanumeric" minlength="16" maxlength="16" size="50" />
<word_free typeobj="text" label="\nEspressione regolare libera(esempio: solo numeri da 0 a 4):\n" blur="^[0-4]{0,}$" size="50" />
</tab2>
</tabs1>
</page>
</jamp>