Parole (\w+) nelle regular expression
Scritto il 28 Dicembre 2007
Nella categoria Guide, Javascript
Tag: Javascript, lingua, regexp, regular expression
Funzione molto comoda nelle Regular Expression sono le i caratteri speciali, come \d per le cifre o \s per tutti i vari spazi. Utilissimo sarebbe il carattere \w, che identificherebbe le lettere (e quindi le parole), ma la specifica impone che trovi solo i caratteri latini base (da “A” a “Z” e da “a” a “z“) più i numeri, rendendo quindi inutile il mezzo per tutti gli alfabeti con caratteri accentati o in generale estesi. Per esempio la parola “perché” non contiene tutte \w in quanto la “é” non appartiene al range [A-Za-z0-9].
Fate qui sotto una prova, nell’output verrà estratta la prima “parola” cioè il primo blocco \w+
Input:
Output:
(generato tramite match(/\w+/) )Per ovviare a questo problema, mi sono sfogliato tutti i codici unicode e ho estratto il blocco esatto per i caratteri, che include quindi anche le lettere accentate e strane di ogni nazione.
[\w\u00C0-\u017F\u1e00-\u1ef9]
Sarebbe il blocco corrispettivo, cioè il classico \w più il resto delle lettere (per essere preciso il blocco Latin Extended Additional, il necessario da Latin-1 Supplement e Latin Extended-A ), ma magari è più utile
[A-Za-Z\u00C0-\u017F\u1e00-\u1ef9]
Che individua solo le lettere escludendo i numeri (che non capisco perché vengano inclusi). Eccone una prova
Input:
Output:
(generato tramite match(/[A-Za-z\u00C0-\u017F\u1e00-\u1ef9]+/) )
.






Commenti
Scrivi un commento
Se vuoi.