2011-04-20 34 views
13

que estoy escribiendo un método personalizado para un plugin de jQuery:Cómo comprobar los caracteres alfanuméricos

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
     return this.optional(element) || (/*contains "^[a-zA-Z0-9]*$"*/); 
}); 

sé la expresión regular para lo que quiero, pero no estoy seguro de cómo escribir algo en JS que evaluará a True si contiene los caracteres alfanuméricos. ¿Alguna ayuda?

+0

Si cambias tu pregunta, escribe 'EDIT 'y describe lo que cambias en tu pregunta. – nk9

Respuesta

37

Ver test método de RegExp.

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
     return this.optional(element) || /^[a-zA-Z0-9]+$/.test(value); 
}); 
+2

excelente respuesta. Sugeriría usar '+' en la expresión regular en lugar de '*'; de lo contrario, una cadena vacía coincidirá con – Cfreak

+0

Acepto porque opcional manejaría una cadena vacía. –

+0

Esto es casi exactamente lo que quiero. Si ingreso 'qwertyuiop' entonces será verdadero. Pero también me gustaría ingresar 'qwerty uiop' (con un espacio) y todavía tengo que ser cierto. Simplemente no quiero una entrada totalmente en blanco, incluso si la cantidad de espacios en blanco excede la longitud mínima. ¿Cómo puedo hacer eso? – AKor

3

Puede utilizar expresiones regulares en JavaScript:

if(yourstring.match(/^[a-zA-Z0-9]+/)) { 
    return true 
} 

Tenga en cuenta que he utilizado en lugar de +*. Con * sería devolver true si la cadena estaba vacía

0
$("input:text").filter(function() { 
    return this.value.match(/^[a-zA-Z0-9]+/); 
}) 
4
// use below ... It is better parvez abobjects.com 
jQuery.validator.addMethod("postalcode", function(postalcode, element) { 
    if(this.optional(element) || /^[a-zA-Z\u00C0-\u00ff]+$/.test(postalcode)){ 
     return false; 
    }else{ 
     return this.optional(element) || /^[a-zA-Z0-9]+/.test(postalcode); 
    } 

}, "<br>Invalid zip code"); 



rules:{ 
    ccZip:{   
      postalcode : true 
     }, 
     phone:{required: true}, 

This will validate zip code having no letters but alphanumeric 
7

Si desea utilizar caracteres españoles en su validación alfanumérica puede utilizar esto:

jQuery.validator.addMethod("alphanumeric", function(value, element) { 
    return this.optional(element) || /^[a-zA-Z0-9áéíóúÁÉÍÓÚÑñ ]+$/.test(value); 
}); 

También he añadido un espacio en blanco para permitir que los usuarios agreguen palabras

+0

Si desea utilizar más idiomas, puede agregar caracteres franceses y alemanes, pero la expresión regular podría ser demasiado "pesada". Solo usa los caracteres que realmente evaluarías – OtakuPahp

Cuestiones relacionadas