2009-07-04 10 views
6

Ho bisogno di un'espressione regolare che corrisponda anche alle lettere cinese, greca, russa, .... Quello che sostanzialmente voglio fare è rimuovere la punteggiatura e i numeri.RegEx per tutte le lettere (incluso cinese, greco, ecc.)

Fino ad ora ho rimosso la punteggiatura ei numeri "manualmente" ma ciò non sembra essere molto coerente.

Un'altra cosa che ho provato è

/[\p{L}]/ 

ma che non è supportata da Mozilla (io uso questo in un estensione per Firefox).

+0

Avete bisogno di corrispondere solo le lettere in base alla lingua dell'utente particolare (il che significa che solo è necessario un locale motore regex a conoscenza) o hai bisogno per abbinare tutto ciò che è una lettera in qualsiasi lingua possibile? – balpha

+2

E quale punteggiatura devi rimuovere? Hai bisogno di rimuovere l'apostrofo in O'Brien? –

+0

'[\ p {P} \ p {N}]' descrive punteggiatura e numeri. – Gumbo

risposta

4

Hai dato XRegExp e il Unicode plugin un tentativo/look?

<script src="xregexp.js"></script> 
<script src="xregexp-unicode.js"></script> 
<script> 
    var unicodeWord = XRegExp("^\\p{L}+$"); 
    alert(unicodeWord.test("Ниндзя")); // -> true 
</script> 
+1

Grazie, è esattamente quello che stavo cercando. Tuttavia, non voglio davvero includere una libreria 8kb che uso una sola volta nella mia estensione. Gli intervalli unicode nel plugin Unicode sono molto utili e penso che userò quelli per scrivere qualcosa da me. – slosd

1

È possibile trovare molte lamentele sulle attuali specifiche ECMA sulle espressioni regolari che non trattano i caratteri Unicode come dovrebbero. Per esempio. a blog entry by Scott Hanselman che rimanda a una domanda SO ;-)
Non c'è ancora una soluzione "reale" a questo problema, ma date un'occhiata alle risposte di Javascript + Unicode regexes (la vostra domanda è più o meno un duplicato di questo) (modifica: I riprendilo, il plug-in Unicode Jonathan Lonowski suggerisce un aspetto gradevole)

Problemi correlati