2009-06-09 162 views
7

Tengo un problema donde necesito usar un RegularExpressionValidator para limitar la longitud de una cadena a 400 caracteres.Expresión regular para limitar la longitud de la cadena

Mi expresión era .{0,400}

Mi pregunta: ¿Hay una manera de limitar la longitud de caracteres a 400 sin tener en cuenta los espacios en blanco?

Quiero ser capaz de aceptar espacios en blanco en la cadena pero no contarla en la longitud. es posible?

+0

Esto no es estrictamente posible con una expresión regular, pero está en muchos idiomas. ¿En qué idioma estás intentando implementar esto? – Copas

+0

Estoy usando el control RegularExpressionValidator en una aplicación web asp.net (vb.net). – Boopid

Respuesta

11

yo más o menos de acuerdo con Greg, pero aquí es la expresión regular que desee:

^\s*([^\s]\s*){0,400}$ 

@Boopid: Si realmente se quiere decir sólo el carácter de espacio, reemplace \ s con un espacio en la expresión regular.

+0

¿No debería ser [^ \ s] en lugar de [^]? Aparte de eso: ¡lindo! – Stephan202

+0

(¿o el interrogador por "espacios en blanco" realmente solo significa el carácter de espacio?) – Stephan202

+2

O simplemente \ S en lugar de [^ \ s] –

7

Parece que es posible que desee escribir su propia clase de validador en lugar de usar el Exprimidor de expresiones regulares. Las expresiones regulares ciertamente tienen sus usos, pero esto no suena como uno de ellos.

Su validador personalizado podría eliminar todos los espacios, luego verificar la longitud de la cadena. En última instancia, el código será más legible que una expresión regular que haga lo mismo.

+0

Acepto, simplemente elimine todos los espacios en blanco y verifique la longitud de la cuerda. Probablemente muy eficiente en comparación con la expresión regular sugerida anteriormente (aunque esta es solo una teoría). –

Cuestiones relacionadas