[Javascript] RegExp

eraclio666

Nuovo Utente
8 Mag 2015
28
0
1
barletta
Buongiorno,
ammetto di essere un neofita in JS, ma mi divincolo egregiamente tra il codice.

Sto impazzendo da ieri per uno script di un calcolo di codice fiscale, trovato on-line, per il mio form di anagrafica

il problema è in questa funzione:

Codice:
CFisc.trova_comune=function(pattern_comune)
{
  var codice,comune,ret=[]
  var quoted=pattern_comune.replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g, "\\$1");
  var re=new RegExp(quoted,'i')
 
 
    
  for(codice in this.codici_catastali)
  {
  
    comune=this.codici_catastali[codice]
    
    
    
    if(comune.match(re)){
        ret.push([comune,codice])
    
        
    } 
  }
    
  return ret
      
}



passo il comune inserito dall'utente (pattern_comune) correttamente
(ho anche verificato tutte le variabili se arrivano con il valore giusto in questa funzione).

A questo punto, la funzione fa una ricerca tra i comuni catastali per ricavarne il codice da inserire nel cf,


Codice:
for(codice in this.codici_catastali)
  {
  
    comune=this.codici_catastali[codice]
    
    
    
    if(comune.match(re)){
        ret.push([comune,codice])
    
        
    } 
  }

ma mi dà un problema, nell if se (per esempio)
re è TRANI, mi restituisce tutti i comuni che contengono TRANI, tipo ATRANI e questo mi incasina poi il calcolo del CF. (vi lascio immaginare i casini che mi crea quando la città è VO )


Come posso fare per risolvere questo problema??? Non esiste un metodo per dire che voglio solo TRANI e non le variabili che contengono TRANI??
 

otto9due

Utente Attivo
22 Feb 2014
591
25
28
Ho trovato su internet questa soluzione

‘^TRANI’

Ma non so dove applicarl

Nelle espressioni regolari il simbolo ^ significa ( che inizia esattamente con .. ) e il simbolo $ messo alla fine significa ( che finisce esattamente con ). Qui sul sito trovi una guida su come usarle..

Quintrovi una guida veramente ben fatta, sulle espressioni regolari : https://blog.chalda.it/guida-alla-sintassi-delle-espressioni-regolari-217.html

Quinqualche esmpio su vome utilizzarle con javascript:
https://www.mrw.it/javascript/espressioni-regolari_6838.html


Inviato dal mio iPhone utilizzando Tapatalk
 

eraclio666

Nuovo Utente
8 Mag 2015
28
0
1
barletta
Grazie per la risposta, lunedì la proverò

Il problema che riscontro è perché l’elenco dei comuni associati è così composto

CODICE : TRANI (BA)
A669 : BARLETTA (BA)
.....
.....


Quindi quando esegue la ricerca ha bisogno di scomporre il nome del comune tra il calore delle parentesi
 

otto9due

Utente Attivo
22 Feb 2014
591
25
28
Quindi sta sempre tra i : e una parentesi ( ??? Es: ... : QUELLO CHE MI INTERESSA ( ...


Inviato dal mio iPhone utilizzando Tapatalk
 

otto9due

Utente Attivo
22 Feb 2014
591
25
28
Scusa per il ritardo, ma ero da cellulare e non riuscivo neanche a provarle.
Prova così.. ( vedi il risultato in clonsole )
Basta semplicemente andare ad aprire il risultato del primo gruppo di parentesi tonde.
Si può certamente migliorare ma dovrebbe funzionare se le analizzi ad una ad una le righe.

HTML:
<!DOCTYPE html>
<html>
<head>
<title>Try jQuery Online</title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
var myString = "test: MILANO (MI)"; // Stringa da analizzare

var arr = /: (\w*) \(/img.exec(myString);

console.log(arr[1]);  // MILANO

</script>
</head>
<body>

</body>
</html>
 
Ultima modifica:
  • Like
Reactions: eraclio666

eraclio666

Nuovo Utente
8 Mag 2015
28
0
1
barletta
Grazie Otto9due,

ora sto riprendendo in mano il codice, ho cercato di approfondirlo e cercare di inserire il pattern che a me serviva ma senza successo, ora posto il codice della funzione che mi genera il problema e la funzione con elenco catastali


Codice:
CFisc.trova_comune=function(pattern_comune)
{
  var codice,comune,ret=[]
  var quoted=pattern_comune.replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g, "\\$1");
    //var quoted=pattern_comune.replace(/^([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g, "\\$1");
  var re=new RegExp(quoted,'i')
 
  document.cf.test.value = re
    
  for(codice in this.codici_catastali)
  {
  
    comune=this.codici_catastali[codice]
    
    
        //if(comune.match(re)){
          
    if(comune.match(re)){     
    //if(comune == 'TRANI (BA)'){
    //if(comune.match(re)){
        ret.push([comune,codice])
    //document.cf.test.value = ret
        
    } 
  }
    
  return ret
      
}




Questo è invece il codice della funzione catastali


Codice:
<script>
CFisc.codici_catastali={
"A001":"ABANO TERME (PD)",
"A004":"ABBADIA CERRETO (LO)",
"A005":"ABBADIA LARIANA (LC)",
"A006":"ABBADIA SAN SALVATORE (SI)",
"A007":"ABBASANTA (OR)",
"A008":"ABBATEGGIO (PE)",
"A010":"ABBIATEGRASSO (MI)",
"A012":"ABETONE (PT)",
"A013":"ABRIOLA (PZ)",
"A014":"ACATE (RG)",
"A015":"ACCADIA (FG)",
"A016":"ACCEGLIO (CN)",
"A017":"ACCETTURA (MT)",
"A018":"ACCIANO (AQ)",
"A019":"ACCUMOLI (RI)",
"A020":"ACERENZA (PZ)",
"A023":"ACERNO (SA)",


Ovviamente l'elenco è lunghissimo
 

eraclio666

Nuovo Utente
8 Mag 2015
28
0
1
barletta
sembra che abbia trovato una soluzione,
Codice:
CFisc.trova_comune=function(pattern_comune)
{
  var codice,comune,ret=[]
  var quoted=pattern_comune.replace(/([\\\.\+\*\?\[\^\]\$\(\)\{\}\=\!\<\>\|\:])/g, "\\$1");
  //var quoted=pattern_comune.replace(/\, "");
  //var re=new RegExp(quoted,'i')
  var re=new RegExp('^'+quoted,'i')

  //document.cf.test.value = re
    
  for(codice in this.codici_catastali)
  {
  
    comune=this.codici_catastali[codice]
    //document.cf.test.value = comune
    
    if(comune.match(re)){
          
    //if(comune.match(re)){     
    //if(comune == 'TRANI (BA)'){

        ret.push([comune,codice])
    document.cf.test.value = ret
        
    } 
  }
    
  return ret
      
}



questa linea di codice

var re=new RegExp('^'+quoted,'i')


mi risolve il problema, anche se per alcune città (VO per esempio), in ret mi genera un elenco di comuni che iniziano per VO
 
Discussioni simili
Autore Titolo Forum Risposte Data
I Creare un banner temporaneo JavaScript Javascript 0
S Impossibile scorrere un oggetto in JavaScript Javascript 0
N Passare array da php a javascript PHP 5
L Quiz javascript funzionante da migliorare Javascript 0
P errore 404 con javascript Javascript 2
D aiuto funzioni javascript Javascript 1
M Upload immagine con javascript problemi con FormData() Javascript 1
L countdown multiplo javascript Javascript 1
S Problemi Javascript + Aruba Javascript 2
M Inviare un file su un server remoto con JavaScript Javascript 0
T a href="javascript:;" Javascript 1
F Creare elementi html con javascript Javascript 3
A pulsante di update campo mysql con javascript Javascript 2
8 Javascript - PDF Form Javascript 0
B javascript per problemi con pdf e Safari Javascript 0
N informazione javascript Programmazione 0
I Eecuzione di javascript in ciclo foreach php. PHP 7
P javascript:document.forms Javascript 7
S Consiglio esercizio Javascript Javascript 2
MarcoGrazia Aggiungere o rimuovere classi in javascript Javascript 1
P Passaggio id php a javascript PHP 6
R Confrontare il dominio di una mail con una stringa contenente un dominio personalizzato, tutto ciò in php o javascript PHP 0
E lettura da un Database con Javascript jQuery 2
V TRIS in javascript Javascript 1
IClaude Funzione Javascript Javascript 8
Alex_70 Javascript date color Javascript 3
F Convertire JavaScript per la compatibilità nei browser obsoleti Javascript 0
I Passare dei parametri in javascript PHP 0
Shyson Meglio Javascript o HTML? Javascript 4
G Problema verifica palindromo e verifica pari e dispari javascript Javascript 0
M Chiamare pagina php da javascript Javascript 8
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
D Javascript per il download dei dati Javascript 0
grgfede Problema javascript con aruba Javascript 1
R Cerco supporto in programmazione javascript Offerte e Richieste di Lavoro e/o Collaborazione 0
webmachine [PHP] [JAVASCRIPT] Form strano in HTML PHP PHP 1
W Modificare il Type di un Input box in javascript ovunque si trovi Javascript 0
I javascript come caricare una pagina sopra quella corrente in automatico Javascript 2
L [Javascript] Problema salvataggio dati in db Javascript 1
max1974 [Javascript] Grafico chartjs con dati da J.ajax Javascript 3
G Quiz Javascript Javascript 4
A [Javascript] Scrittura su più campi contemporaneamente Javascript 18
F classic asp popolare combo box javascript Presentati al Forum 1
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
F [Javascript] comando innerHTML non funziona Javascript 5
alexice51 proggrammi per scrivere in javascript? Javascript 3
max1974 [Javascript] Accordion aria-exspanded Javascript 0
D [Javascript] salvare immagine canvas - paypal Javascript 0
O [Javascript] Conflitto Jquery: forse... Javascript 0
M [Javascript] Canvas js css Javascript 1

Discussioni simili