Foros del Web » Programando para Internet » Javascript »

Expresión regular

Estas en el tema de Expresión regular en el foro de Javascript en Foros del Web. Hola, estoy utilizando la siguiente expresión regular, cadena.match(/^[0-9a-zA-Z]*$/) para validar una cadena, pero quiero que también acepte una cadena con dos palabras, ejem. 'mi cadena', ...
  #1 (permalink)  
Antiguo 22/03/2005, 07:07
Avatar de strogoff  
Fecha de Ingreso: noviembre-2002
Ubicación: Madriss
Mensajes: 62
Antigüedad: 21 años, 5 meses
Puntos: 0
Expresión regular

Hola, estoy utilizando la siguiente expresión regular,
cadena.match(/^[0-9a-zA-Z]*$/)
para validar una cadena, pero quiero que también acepte una cadena con dos palabras, ejem. 'mi cadena', pero no lo hace.
He estado mirando por ahí sobre expresiones regulares y me he perdido un poco . Alguien puede ayudarme please.

Strogoff
  #2 (permalink)  
Antiguo 22/03/2005, 09:42
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola strogoff

Intentalo así:

cadena.match(/^[0-9a-zA-Z\s]*$/)

\s es el espacio

Saludos,
  #3 (permalink)  
Antiguo 22/03/2005, 09:47
Avatar de strogoff  
Fecha de Ingreso: noviembre-2002
Ubicación: Madriss
Mensajes: 62
Antigüedad: 21 años, 5 meses
Puntos: 0
El problema que tengo es que el espacio ha de ir entre dos palabras y con la expresión dada daría por válida una cadena de espacios.
De todas formas muchas gracias
  #4 (permalink)  
Antiguo 22/03/2005, 10:04
 
Fecha de Ingreso: agosto-2004
Mensajes: 157
Antigüedad: 19 años, 8 meses
Puntos: 5
Hola strogoff y JavierB
Si lo que necesitas es validar creo que lo mejor es utilizar test(), el ejemplo que te envio es para validar un input text.

Código:
<html>
<head>
<title>Untitled</title>
<script language=JavaScript type=text/javascript>
<!--
// Este método elimina los espacios a ambos lados de la cadena
String.prototype.trim = function() {
   return this.replace(/(^\s*)|(\s*$)/g, "");
}
// permite una o dos palabras con un solo espacio
var msk_w = /^[a-zñáéíóú\d]+\s?[a-zñáéíóú\d]*$/i

function validar(s){
// eliminamos los espacios a ambos lados de la cadena
// y si existe mas de un espacio entre las palabras 
// la replazamos por un solo espacio
var st = s.value.trim().replace(/\s+/g," ");

// comprobamos si es valida la cadena
var tof = msk_w.test(st);
	if(tof){
	s.value = st;
		alert(tof + " -> \"" + st + "\"");
		return false;
	}
	else{
		s.value = ""
		alert(tof + " -> \"" + st + "\"");
	}



}
//-->
</script>

</head>
<body>
<form  name="form1">
<input type="text" size="50" name="texto" onblur="validar(this)">
</form>
</body>
</html>
El script esta pensado para molestar lo minimo al usario, si este introduce dos palabras validas pero mas de un espacio entre ambas el script se encarga de eliminar los espacios sobrantes.
Si necesitas alguna modificacion o algo va mal, cuentamelo, por aqui estare.


Saludos:)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:45.