Loading ...

Javascript ha la funzione replace che ci permette di rimipiazzare quello cerchiamo in quello che vogliamo.

Solo che non vale per tutti i caratteri; in sostanza non ha un replaceAll, o non funziona come PHP che lo fa a prescindere.

Avendo un stringa / testo in formato HTML, vogliamo eleminare tutti i tag img usando Javascript.

Ma non abbiamo il testo nel DOM, ma ci arriva da una fonte esterna (ad esempio un web service).

Come fare?

Se vogliamo sostituire delle parole in un testo usando Python, possiamo usare la funzione replace!

Vediamo un esempio funzionante (e banale):

str = "Ciao, questo è il blog di Pippicalzelunghe"
print(str.replace("Pippicalzelunghe", "Mattepuffo"))

Ciao, questo è il blog di Mattepuffo

Oggi vediamo un piccolo snippet in PHP che ci permette di eliminare i numeri dalle stringhe testuali.

In pratica vogliamo che 80PL diventi solo PL.

Per farlo possiamo usare la funzione ereg_replace e una semplice regex.

Come leggiamo dal manuale, questa funzione ci permette di sostituire del testo con quello che vogliamo noi, cercando ciò che vogliamo sostituire attraverso una espressione regolare.

Quello che vediamo oggi è come impostare il testo maiuscolo automaticamente in una JTextField.

In pratica dentro alla nostra casella di testo potremmo scrivere solo in maiuscolo.

Per prima cosa dobbiamo creare una classe apposita, che estenda DocumentFilter.

In breve, DocumentFilter è in grado di modicare il contenuto di un Document.

Questa la classe:

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;

public class UppercaseFilter extends DocumentFilter {

    @Override
    public void insertString(DocumentFilter.FilterBypass fb, int offset, String text, AttributeSet attr) throws BadLocationException {
        fb.insertString(offset, text.toUpperCase(), attr);
    }

    @Override
    public void replace(DocumentFilter.FilterBypass fb, int offset, int length, String text, AttributeSet attrs) throws BadLocationException {
        fb.replace(offset, length, text.toUpperCase(), attrs);
    }
}

Il metodo insertString viene invocato prima dell'inserimento del testo.