Domanda

Voglio usare un ASP.NET RegularExpressionValidator per limitare il numero di parole in una casella di testo. (Il RegularExpressionValidator è la mia soluzione preferita perché farà entrambi i controlli lato server client e).

Quindi, quale sarebbe il Regex corretto per mettere in RegularExpressionValidator che conterà le parole e far rispettare una parola-limite? Per, diciamo, 150 parole.

(NB: vedo che questa domanda è simili, ma le risposte fornite sembrano fare affidamento anche sul codice, come Split () quindi non credo che nessuno di loro potrebbe collegare a una RegularExpressionValidator è per questo che sto chiedendo di nuovo)

È stato utile?

Soluzione

Dal ^ e $ è implicitamente set con RegularExpressionValidators , utilizzare il seguente:

(\S*\s*){0,10}

Il 0 qui permette stringhe vuote (più precisamente 0 parole) e 150 è il numero massimo di parole da accettare. Regolare questi se necessario per aumentare / diminuire il numero di parole accettati.

È possibile che questo regex non è avido, così avrai un match veloce versi quella data in questione si fa riferimento. (\b.*\b){0,10} è avido, così come avete aumentato il numero di parole che si verifichi una riduzione delle prestazioni.

Altri suggerimenti

Ecco un rapido riferimento per le espressioni regolari: http://msdn.microsoft.com/en-us/library/az24scfc.aspx

È possibile utilizzare questo sito per testare le espressioni: http://regexpal.com/

Ecco il mio esempio espressione regolare che funziona sia con numero minimo e massimo di parola (e correzioni di bug con spaziatura leader):

^\s*(\S+\s+|\S+$){10,150}$

Controlla questo sito:

http://lawrence.ecorp.net/inet/samples /regexp-validate.php#count

la sua regex javascript, ma è molto simile a asp.net

il suo qualcosa di simile:

(\ b [a-z0-9] + \ b. *) {4,}

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top