【问题标题】:javascript input validation didn't workjavascript输入验证不起作用
【发布时间】:2014-11-29 21:26:53
【问题描述】:

这个简单的代码运行良好

   var gotname= false;

while (gotname==false){

var username =prompt ("passanger ,what's yout name");
 if (confirm("ar u " + username + "?")){
alert ("welcome "+ username);
gotname=true;
}

}

在添加一些验证条件以确保输入不为空且仅单词之后。代码没有按我的意愿工作 按摩警报确认(“ar u”+用户名+“?”) 没有捕获用户名值并显示值“false”

这是我的代码

var gotname= false;

while (gotname==false){

var username =prompt ("passanger ,what's yout name");
  if( (username === null) || (username =! /^[A-Za-z ]+$/.test(username)) ){alert("enter valid one without numbers ! words only")}

else
 {confirm("ar u " + username + "?")}

alert ("welcome "+ username);
gotname=true;


}

也试过了

var gotname= false;

while (gotname==false){

var username =prompt ("passanger ,what's yout name");
if( username === null && username =! /^[A-Za-z ]+$/.test(username) ){alert("enter valid one")}


else if (confirm("ar u " + username + "?")){
alert ("welcome "+ username);
gotname=true;
}

}

【问题讨论】:

  • (username =! /^[A-Za-z ]+$/.test(username)) 出现错误。运营商是!=,但这似乎并不正确。

标签: javascript validation while-loop conditional


【解决方案1】:

试试这个:

<script type="text/javascript">
    function isUsernameValid(username) {
        return /^[A-Za-z ]+$/.test(username);
    }
var gotname= false;
while (gotname==false){
    var username = prompt ("passanger ,what's yout name");
    if( (username === null) || !isUsernameValid(username) ){
    alert("enter valid one without numbers ! words only")
} else {
    confirm("ar u " + username + "?")
    alert ("welcome "+ username);
}
gotname=true;


}
</script>

【讨论】:

  • 这很好用,谢谢。如果我想再次显示按摩“乘客,你的名字是什么”,以防用户输入有效格式(而不是单词),因为在这段代码中,如果他写一种糟糕的格式,他会得到按摩,但在那之后它会结束循环,因为它变成了真的,我需要在他做了我想让他做的事情后结束循环@Mandrake
猜你喜欢
  • 2014-06-27
  • 2014-02-07
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多