Pregunta

Quiero usar un RegularExpressionValidator ASP.NET para limitar el número de palabras en un cuadro de texto. (El RegularExpressionValidator es mi solución preferida porque va a hacer las dos cheques del cliente y del lado del servidor).

Entonces, ¿cuál sería la expresión regular correcta para poner en el RegularExpressionValidator que contar las palabras y hacer cumplir un límite de palabras? Para, digamos, 150 palabras.

(NB: Veo que esta pregunta es similares, pero las respuestas dadas parecen también se basan en código como de Split (), así que no creo que cualquiera de ellos podría conectarse a una RegularExpressionValidator que es por eso que estoy pidiendo de nuevo)

¿Fue útil?

Solución

Desde ^ y $ es implícitamente conjunto con RegularExpressionValidators , utilice el siguiente:

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

El 0 aquí permite cadenas vacías (más específicamente 0 palabras) y 150 es el número máximo de palabras de aceptar. Ajustar como sea necesario para aumentar / disminuir el número de palabras aceptadas.

La expresión regular anterior es no expansivo, de manera que obtendrá un partido rápido versos la dada en la pregunta se hace referencia. (\b.*\b){0,10} es codicioso, por lo que a medida que aumentó el número de palabras que verá una disminución en el rendimiento.

Otros consejos

Aquí es una referencia rápida para las expresiones regulares: http://msdn.microsoft.com/en-us/library/az24scfc.aspx

Puede utilizar este sitio para probar las expresiones: http://regexpal.com/

Aquí está mi ejemplo de expresiones regulares que funciona tanto con mínimo y máximo de recuento de palabras (y correcciones de errores con el espaciamiento de ataque):

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

Comprobar este sitio:

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

regex Javascript, pero es muy similar a asp.net

es algo como esto:

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top