2012-08-27 9 views

risposta

9

Se si desidera includere il segno meno "-" nella classe di caratteri, bisogna metterlo in alla fine della gamma:

val.replace(/[^a-zA-Z_0-9-]/g, '') 
2

Si dispone di un intervallo errato, rimuovere il - tra _ e l'intervallo di numeri e metterlo alla fine o all'inizio.

3

si prevede che - personaggio da interpretare come letterale, ma è in realtà analizzato come un intervallo: _-0 significa _-0, proprio come a-z significa a a z. Tuttavia, poiché _ ha un codice di carattere più alto di 0, si verifica un errore.

Nel tuo caso, basta scappare: \-. Questo viene analizzato come il carattere -.

+0

Barra rovesciata sfuggire caratteri all'interno di una lista di staffa non è consentita dallo standard POSIX regex, quindi sarei diffidare di usarlo. –

+0

@SimonRichter: il sapore regex JavaScript deriva da Perl, non da POSIX. L'escaping backslash funziona bene (ma spostare il trattino alla fine è più ordinato). –

2

provare questo:

val.replace(/[^a-zA-Z_0-9-]/g, ''); 
5

avrei preferire questo regex:

val.replace(/[^\w-]+/gi, ""); 
2

Hai bisogno di fuggire il "-"

val.replace(/[^a-zA-Z_\-0-9]/g, '') 
0
$(this).val($(this).val().replace(/[^a-zA-Z_0-9-]/g, '')); 
+0

Si prega di modificare con ulteriori informazioni. Le risposte solo per codice e "prova questo" sono scoraggiate, perché non contengono contenuti ricercabili e non spiegano perché qualcuno dovrebbe "provare questo". – Paritosh

Problemi correlati