Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544

    Codice che trova le parole

    Ho questo codice che trova le parole che ho in un array, però mi trova la parola anche se si trova in un'altra, es: se la parola che ho nell'array è Rossi, se io scrivo Rossini, il codice la trova, io invece vorrei che trova solo l'ESATTA parola che ho nell'array (e cioè Rossi), non i suoi derivati, questi deve lasciarli passare.

    codice:
    /*function xxxGuest1(){ 
    var f = document.forms.mioform;
    var parole = new RegExp("(<?php echo $stringaJs; ?>)"); 
    var stringhe = ["nome","citta","email","url","messaggio"]; 
    for (i=0; i<stringhe.length; i++){
    var campo = f.elements[stringhe[i]];
    if(campo.value.match(parole) && campo.value.match(parole)[0]){ 
    campo.style.backgroundColor='red' 
    alert("La parola '"+campo.value.match(parole)[0]+"' non è ammessa"); 
    campo.focus(); 
    return false; 
    } 
     }
    return true; 
    }

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    codice:
    var stringa = "ciao caro, come stai?";
    
    // espressioni che verificano la presenza di una singola parola all'interno della stringa
    
    var espressione1 = /\bciao\b/i;
    var espressione2 = /\bcia\b/i;
    
    // espressioni che verificano la presenza di almeno una delle parole elencate all'interno della stringa
    
    var espressione3 = /\b(?:come|ciao|caro)\b/gi;
    var espressione4 = /\b(?:com|iao|car)\b/gi;
    
    alert(espressione1.test(stringa)); // true
    alert(espressione2.test(stringa)); // false
    alert(espressione3.test(stringa)); // true
    alert(espressione4.test(stringa)); // false
    N.B. Come puoi notare tu stesso, nelle prime due espressioni ragolari il flag "g" è inutile.


  3. #3
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Ma come lo applico al mio codice?

  4. #4
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Premesso che la variabile php $stringaJs deve contenere ESATTAMENTE qualcosa del genere:

    codice:
    parola1|parola2|ciao|mondo|etc
    (senza virgolette e nient'altro: esattamente quello che vedi!!), non devi fare altro che usare una funzione più o meno simile a questa:

    codice:
    function xxxGuest1() {
    	var modulo = document.forms.mioform;
    	var parole = /\b(?:<?php echo $stringaJs; ?>)\b/gi;
    	var nomiCampi = ["nome", "citta", "email", "url", "messaggio"];
    	for (idCampo = 0; idCampo < nomiCampi.length; idCampo++) {
    		var campo = modulo.elements[nomiCampi[idCampo]];
    		if (parole.test(campo.value)) {
    			campo.style.backgroundColor = "red";
    			alert("La parola \"" + campo.value.match(parole)[0] + "\" non \u00E8 ammessa.");
    			campo.focus();
    			return false;
    		}
    	}
    	return true; 
    }

  5. #5
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da carlomarx
    Premesso che la variabile php $stringaJs deve contenere ESATTAMENTE qualcosa del genere:

    codice:
    parola1|parola2|ciao|mondo|etc
    (senza virgolette e nient'altro: esattamente quello che vedi!!), non devi fare altro che usare una funzione più o meno simile a questa:

    codice:
    function xxxGuest1() {
    	var modulo = document.forms.mioform;
    	var parole = /\b(?:<?php echo $stringaJs; ?>)\b/gi;
    	var nomiCampi = ["nome", "citta", "email", "url", "messaggio"];
    	for (idCampo = 0; idCampo < nomiCampi.length; idCampo++) {
    		var campo = modulo.elements[nomiCampi[idCampo]];
    		if (parole.test(campo.value)) {
    			campo.style.backgroundColor = "red";
    			alert("La parola \"" + campo.value.match(parole)[0] + "\" non \u00E8 ammessa.");
    			campo.focus();
    			return false;
    		}
    	}
    	return true; 
    }
    Bene, funziona tutto, cos'è quel g alla fine?

  6. #6
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Originariamente inviato da Ht28
    Bene, funziona tutto, cos'è quel g alla fine?
    Significa global. Ma stavo pensando che è inutile, levalo e lascia solo "i"!

    codice:
    	var parole = /\b(?:<?php echo $stringaJs; ?>)\b/i;

  7. #7
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da carlomarx
    Significa global. Ma stavo pensando che è inutile, levalo e lascia solo "i"!

    codice:
    	var parole = /\b(?:<?php echo $stringaJs; ?>)\b/i;
    Lo tolgo, ma vedo che i vuol dire case-sensitive, io ho provato a scrivere la parola con lettere maiuscole-minuscole e me la trova lo stesso

  8. #8
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    "i" significa case INsensitive!!!!!! Se la vuoi case sensitive devi levare pure la "i"!!

  9. #9
    Utente bannato L'avatar di Ht28
    Registrato dal
    May 2006
    Messaggi
    1,544
    Originariamente inviato da carlomarx
    "i" significa case INsensitive!!!!!! Se la vuoi case sensitive devi levare pure la "i"!!
    La lascio allora, ora che il js va bene ho notato che me la blocca il controllo php, perciò devo modificare anche quello (anche se questa non è la sez. appropriata)

    Codice PHP:
    include("parole-proibite.php");
    $stringa $_POST['nome'].' '.$citta.' '.$email.' '.$messaggio
    foreach(
    $paroleNoGood as $parola){
    if (
    stristr($stringa$parola) !== false){
    echo... 

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.