早上好!我已经思考了几个小时,我不知道错误在哪里,我必须验证一个名称不包含空格!
function validarNombre(){
var p1 = document.getElementById("nombre").value; //tomamos en una variable lo ingresado en el login nombre
var espacios = false;
var cont = 0;
while (!espacios && (cont < p1.length)) {
if (p1.charAt(cont) == " "){
espacios = true;
cont++;
}
}
if (espacios) {
alert ("La contraseña no puede contener espacios en blanco");
return false;
}
}
<div class="container">
<center><p class="usuario">Usuarios </p></center>
<div class="login">
<form name="login" method="post" action="#">
<label for="nombre">Nombre:</label><br>
<input type="text" onSubmit="return validarNombre()" id="nombre" name="nombre" value=""><br>
<label for="correo">Email:</label><br>
<input type="correo" name="correo" value=""><br>
<a href="#"> Suscribite Ahora </a>
<p class="submit" onclick="" >
<input type="submit" name="commit" value="Login"></p>
</form>
</div>
</div>
非常感谢您!
您好,您的代码在逐个字符检查是否有空格时效率不高,您可以使用正则表达式或正则表达式来检查它:
正如评论中提到的,上面的代码匹配空格、制表符等。如果您只是在寻找空间,请按表格进行
如果要检查字符串中是否存在字符,则无需重新发明轮子,请使用 function
.indexOf()
。如果结果为 -1,则表明在原始字符串中未找到作为参数传递的字符串(在您的情况下为“”)。否则返回第一次出现的位置。
例子
在您的情况下,代码可以是这样的
你有一个无限循环
它应该是
我回答这个问题是为了让你摆脱它为什么不起作用的问题。但是,Wilfredo 的回答是进行此检查的正确方法。学习正则表达式,它们会简化你的生活。尽管...
更简单且不使用正则表达式的方法是进行拆分并计算找到的值的数量,并据此知道是否有空格。
我承认这不是一个很好的解决方案,但它是基本且快速编程的东西。
例子:
此外,您可以做的是使用
indexOf()
(如之前的评论中所述)。例子: