为啥代码实现出来的效果不对
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title> </title> </head> <body> <script> //补充代码 var input=prompt("请输入登录邮箱"); for(var i=0;i<input.length;i++){ if(num>0){ var num=input.indexOf("@"); var name=input.slice(0,num); var address=input.slice(num+1); document.write("邮箱的用户名是:"+name+"<br/>"); document.write("登录的邮箱域名是:"+address); }else{ input=prompt("请输入正确格式"); } } </script> </body> </html>
1
收起
正在回答
4回答
同学你好,
因为本节练习主要是侧重练习前一小节所学的字符串分割方法, 关于邮箱的验证,后面阶段我们会学习正则表达式, 老师会进行详细讲解的, 目前阶段,同学可以不对邮箱格式做严格的验证, 所以老师根据同学的代码, 只是做了简单的修改,通过长度判断是否输入的有内容
同学粘贴的这段代码, 使用for的逻辑就是不对的, 可以参考下图注释的分析, 这段代码的逻辑问题如下
(1)首先, 用户已经输入对的情况下,还会多次弹出输入框
(2)然后, 如果在多次弹出框的过程中,用户不小心输错了一次, 那么input会被重新赋值,导致结果不正确。
可以修改为while循环, 结合break关键字实现效果, 示例:
建议:同学以后提问,可以详细的描述一下问题,例如这个题:可以说我想要通过用户输入的内容中是否有@字符,判断输入的是不是邮箱, 然后我想要的具体效果是什么,便于老师准确高效的帮助您解决问题哦
如果帮助到了你, 欢迎采纳!
祝学习愉快~~~~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星