¿Javascript para permitir solo ciertos caracteres?

Tengo un cuadro de texto en el que un usuario puede ingresar un comentario. El comentario puede ser una combinación de letras (minúsculas o mayúsculas) o dígitos o @ o punto y coma o dos puntos o punto o coma o $ o barra oblicua o espacio o - o _. He intentado usar la siguiente función, pero no prueba $ o espacio o - o _. ¿Cómo puedo incluirlos también en esta función de JavaScript? También quiero permitir una cadena vacía en la entrada.

function alphanumeric(inputtxt) 
{  
  var letters = /^[0-9a-zA-Z]+$/; 
  if(inputtxt.value.match(letters)) 
  { 
    alert('Your registration number have accepted : you can try another'); 
    document.form1.text1.focus(); 
    return true; 
  } 
  else 
  { 
    alert('Please input alphanumeric characters only'); 
    return false; 
  } 
} 

RESPONDER es el siguiente (proporcionado con la ayuda de xdazz):

   function alphanumeric(inputtxt) 
{  
  var letters = /^[\w\d\s@;:.,-/$/]*$/; 
  if(inputtxt.value.match(letters)) 
  { 
    alert('Your registration number have accepted : you can try another'); 
    document.form1.text1.focus(); 
    return true; 
  } 
  else 
  { 
    alert('Please input alphanumeric characters only'); 
    return false; 
  } 
} 

preguntado el 04 de julio de 12 a las 04:07

Parece que ni siquiera has intentado permitir esos símbolos... -

Probé @ o punto y coma o dos puntos o punto o coma, y ​​funcionan, pero cuando incluyo $ arroja un error de javascript. -

¿Cuál es el error? ¿Qué entrada provoca el error? No describir la entrada; Mostrar la entrada. -

Prueba esto: /^[\s\d\w;,@-_./]+$/ -

Kolink: Aquí está el enlace que muestra el error.screencast.com/t/fydGWq5wY9f. ¿Por qué publicaría mi pregunta si no hubiera ningún problema al que me enfrentara???? -

1 Respuestas

Pruebe la expresión regular a continuación.

var letters = /^[\w\d\s$@;.,-/]+$/; 

Respondido 04 Jul 12, 04:07

@Kolink "-".match(letters) te dio ["-"]. - xdazz

@xdazz: su expresión no acepta el símbolo $ o una cadena vacía. - Sunil

@Sunil Solo necesito agregar $ en esta expresión regular, y si dejas '' más partido, cambio + a *, + significa al menos uno de estos caracteres. - xdazz

@xdazz: agradezco su ayuda y orientación al respecto. Siguiendo su consejo, utilicé con éxito la siguiente expresión: var letras = /^[\w\d\s@;:.,-/$/]*$/; - Sunil

¿No es necesario que un guión entre corchetes sea primero, último o escape? Porque tienen un significado especial entre corchetes... - nnnnnn

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.