solo - validar nombre javascript expresion regular
Alfanumérico, guión y guión bajo, pero sin espacios, expresión regular verifica JavaScript (5)
Tratando de verificar la entrada contra una expresión regular.
El campo solo debe permitir caracteres alfanuméricos, guiones y guiones bajos y NO debe permitir espacios.
Sin embargo, el siguiente código permite espacios.
¿Qué me estoy perdiendo?
var regexp = /^[a-zA-Z0-9/-/_]$/;
var check = "checkme";
if (check.search(regexp) == -1)
{ alert(''invalid''); }
else
{ alert(''valid''); }
Sin embargo, el siguiente código permite espacios.
No, no lo hace. Sin embargo, solo coincidirá en la entrada con una longitud de 1. Para las entradas con una longitud mayor o igual a 1, necesita un +
después de la clase de caracteres:
var regexp = /^[a-zA-Z0-9-_]+$/;
var check = "checkme";
if (check.search(regexp) == -1)
{ alert(''invalid''); }
else
{ alert(''valid''); }
Tenga en cuenta que ni el -
(en este caso) ni el _
necesitan escapar.
Esta sintaxis es un poco más concisa que las respuestas que se han publicado hasta este punto y logra el mismo resultado:
let regex = /^[/w-]+$/;
No debe usar String.match sino RegExp.prototype.test (es decir, /abc/.test("abcd")
) en lugar de String.search () si solo está interesado en un valor booleano. También debes repetir tu clase de personaje como se explica en la respuesta de Andy E:
var regexp = /^[a-zA-Z0-9-_]+$/;
No escapar del guión bajo. Podría estar causando algo de extrañeza.
Tiene error estúpido. Así que publica aquí, si alguien lo encuentra útil
-
-/._
- significa guión, punto y subrayado -
/.-_
- significa todos los signos en el rango de punto a subrayado