2010-09-13 17 views
34
$.validator.addMethod('AZ09_', function (value) { 
    return /^[a-zA-Z0-9.-_]+$/.test(value); 
}, 'Only letters, numbers, and _-. are allowed'); 

Cuando uso somehting como test-123, todavía se desencadena como si el guión no fuera válido. Intenté \- y --¿Incluye un guion en un soporte de caracteres regex?

+1

Mi problema fue que en realidad estaba usando el método AZ09 y no AZ09 _ .. gr – ParoX

Respuesta

62

Escapar usando \- debería estar bien, pero también puede intentar ponerlo al principio o al final de la clase de caracteres. Esto debería funcionar para usted:

/^[a-zA-Z0-9._-]+$/ 
+1

Poner el guión al final NO funciona con algunas herramientas de Microsoft, como Microsoft SQL Server Management Studio. Escapar ellos guión funciona. –

+1

¿por qué solo comienzo o final? No se pudo encontrar nada en los documentos –

+0

@SabaAhang porque si está al principio o al final no puede haber entre otros dos caracteres para crear un rango de caracteres (por ejemplo, '[0-9]') – Matthew

18

Escapar el guión usando \- es la forma correcta.

He verificado que la expresión /^[a-zA-Z0-9.\-_]+$/ permite guiones. También puede usar la clase \w para acortarla al /^[\w.\-]+$/.

(Puesta del guión en la expresión última hace que en realidad no requiere de escape, ya que entonces no puede ser parte de una serie, no obstante usted puede ser que desee entrar en el hábito de escapar de ella.)

+0

Muy bueno. : D Yo prefiero la legibilidad (creo que sería fácil para algunos expertos) – ParoX

+0

Poner el guión al final NO funciona con algunas herramientas de Microsoft, como Microsoft SQL Server Management Studio. Escapar ellos guión funciona. –

1

\- deben trabajar para escapar de la - en el rango de caracteres. ¿Puedes citar lo que probaste cuando no parecía? Porque parece funcionar: http://jsbin.com/odita3

0

El \ - tal vez no funcionó porque pasaste todo el material del servidor con una cadena. Si ese es el caso, al principio debe escapar del \ para que el programa del lado del servidor pueda manejarlo también.

  • En una cadena de servidor: \\ -
  • En el lado del cliente: \ -
  • En expresiones regulares (cubiertas): -

O puede simplemente poner en el y del los corchetes [].

0

Una forma más genérica de emparejar guiones es mediante el uso de la clase de caracteres para guiones y guiones ("\ p {Pd}" sin comillas). Si está tratando con texto de varias culturas y fuentes, puede encontrar que hay más tipos de guiones, no solo un carácter. Puede agregar eso dentro de la expresión []

Cuestiones relacionadas