Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Javascript che elimina caratteri speciali

    Ciao ragazzi,
    ho un javascript che mi prende le variabili da un form e me le gestisce.
    E' uno script che ho trovato in giro e non sapendone nulla chiedo a voi.

    C'è qualche funzione che mi leva dalle stringhe i caratteri speciali (tipo &, <, >)?
    Se sì, come posso togliere questa funzione?

    codice:
    // ==========================================================================			 
    // @function		Complete AHAH function
    // @author		Daniele Florio
    // @site		www.gizax.it
    // @version		1.1.3 experimental
    
    // @thanksTo		Andrea Paiola,Walter Wlodarski,Scott Chapman
    
    // @updated 1.1.3 ( execJS function ) @thanks to Giovanni Zona
    
    // (c) 2006 Daniele Florio <daniele@gizax.it>
    
    // ==========================================================================
    
    
    var completeAHAH = {
    
    	loading : 'loading data...',
    
    	ahah : function (url, target, delay, method, parameters) {
    
    	  if ( ( method == undefined ) || ( method == "GET" ) || ( method == "get" ) ){
    			
    			this.creaDIV(target, this.loading);
    			
    			if (window.XMLHttpRequest) {
    				req = new XMLHttpRequest();
    			} 
    			else if (window.ActiveXObject) {
    				req = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			if (req) {
    				req.onreadystatechange = function() {
    					completeAHAH.ahahDone(url, target, delay, method, parameters);
    				};
    				req.open(method, url, true);
    				req.send("");
    			}
    		}
    		if ( (method == "POST") || (method == "post") ){
    
    			this.creaDIV(target, this.loading);
    
    			if (window.XMLHttpRequest) {
    				req = new XMLHttpRequest();
    			} 
    			else if (window.ActiveXObject) {
    				req = new ActiveXObject("Microsoft.XMLHTTP");
    			}
    			if (req) {
    				req.onreadystatechange = function() {
    					completeAHAH.ahahDone(url, target, delay, method, parameters);
    				};
    				req.open(method, url, true);
    				req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    				req.send(parameters);
    			 }
    		}
    	},
    	
    	creaDIV : function (target, html){
    
    	   if (document.body.innerHTML){
    			   document.getElementById(target).innerHTML = html;
    	   }
    	   else if (document.getElementById){
    			   var element = document.getElementById(target);
    			   var range = document.createRange();
    
    			   range.selectNodeContents(element);
    			   range.deleteContents();
    			   element.appendChild(range.createContextualFragment(html));
    
    	   }
    	},
    
    	execJS : function (node) {
    
    		var st = node.getElementsByTagName('SCRIPT');
    		var strExec;
    
    		var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
    		var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
    		var bMoz = (navigator.appName == 'Netscape');
    
    		for(var i=0;i<st.length; i++) {     
    			if (bSaf) {
    			  strExec = st[i].innerHTML;
    			}
    			else if (bOpera) {
    			  strExec = st[i].text;
    			}
    			else if (bMoz) {
    			  strExec = st[i].textContent;
    			}
    			else {
    			  strExec = st[i].text;
    			}
    			try {
    			  eval(strExec);
    			} catch(e) {
    			  alert(e);
    			}
    		}
    
    	},	
    
    	ahahDone : function (url, target, delay, method, parameters) {		
    		if (req.readyState == 4) { 
    			element = document.getElementById(target);
    			if (req.status == 200) {
    
    				//this.creaDIV(target, req.responseText);
    				output = req.responseText;
    				document.getElementById(target).innerHTML = output;
    				var j = document.createElement("div");
    				j.innerHTML = "_" + output + "_";
    				this.execJS(j);
    
    			} 		
    			else {
    				this.creaDIV(target, "ahah error:\n"+req.statusText);
    			}
    		}
    	},
    
    	/*
    
    	@@ parameters : 
    	fileName	= name of your cgi or other
    	method		= GET or POST, default is GET
    	formName	= name of your form
    	dynamicTarget	= name of your dynamic Target DIV or other
    
    	@@ usage : 
    	<form id="formName" action="javascript:completeAHAH.likeSubmit('fileName', 'method', 'formName', 'dynamicTarget');">
    
    	*/
    
    	likeSubmit : function ( file, method, formName, target ) {
    
    		var the_form = document.getElementById(formName);
    		var num = the_form.elements.length;
    		var url = "";
    		var radio_buttons = new Array();
    		var nome_buttons = new Array();
    		var check_buttons = new Array();
    		var nome_buttons = new Array();
    
    
    		// submit radio values
    		var j = 0;
    		var a = 0;
    		for(var i=0; i<the_form.length; i++){
    			var temp = the_form.elements[i].type;
    			if ( (temp == "radio") && ( the_form.elements[i].checked) ) { 
    				nome_buttons[a] = the_form.elements[i].name;
    				radio_buttons[j] = the_form.elements[i].value; 
    				j++; 
    				a++;
    			}
    		}
    		for(var k = 0; k < radio_buttons.length; k++) {
    			url += nome_buttons[k] + "=" + radio_buttons[k] + "&";
    		}
    
    		// submit checkbox values
    		var j = 0;
    		var a = 0;
    		for(var i=0; i<the_form.length; i++){
    			var temp = the_form.elements[i].type;
    			if ( (temp == "checkbox") && ( the_form.elements[i].checked) ) { 
    				nome_buttons[a] = the_form.elements[i].name;
    				check_buttons[j] = the_form.elements[i].value; 
    				j++; 
    				a++;
    			}
    		}
    		for(var k = 0; k < check_buttons.length; k++) {
    			url += nome_buttons[k] + "=" + check_buttons[k] + "&";
    		}
    
    		// submit all kind of input		
    		for (var i = 0; i < num; i++){	
    			var chiave = the_form.elements[i].name;
    			var valore = the_form.elements[i].value;
    			var tipo = the_form.elements[i].type;
    
    			if ( (tipo == "submit") || (tipo == "radio") || (tipo == "checkbox") ){}
    			else {
    				url += chiave + "=" + valore + "&";
    			}
    		}
    
    		var parameters = url;
    		url = file + "?" + url;
    
    		if (method == undefined) { 
    			method = "GET"; 	
    		}
    		if (method == "GET") { 
    			this.ahah(url, target, '', method, ''); 
    		}
    		else { 
    			this.ahah(file, target, '', method, parameters); 
    		}
    	}
    
    };

  2. #2
    prova con un replace con una regexpr un po' particolare:

    codice:
    var str = "Ciao è bello vederti<a> link </a> non link perché & !!!";
    var reg = /[^a-zA-Z0-9 ]/g;
    
    var replaced = str.replace(reg, '');
    
    alert(replaced);
    quella regular expression dice: Globalmenente, le occorrenze che NON fanno parte di a-z (minuscole) A-Z maiuscole 0-9 (Numeri) spazio (lo noti in fondo).

    Con un replace vuoto ottieni quello che vuoi.

    Se vuoi che altri caratteri vengano saltati li devi aggiungere dopo lo spazio: se volessi accettare il punto dovrei fare

    codice:
    var reg = /[^a-zA-Z0-9 \.]/g; //il punto ha lo \ davanti perché è un carattere jolly delle RegExpr
    I DON'T Double Click!

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.