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


Strogoff
| |||
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:
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. <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> Si necesitas alguna modificacion o algo va mal, cuentamelo, por aqui estare. Saludos:) |