使所有空格的值无效的文本框

时间:2015-02-17 03:33:27

标签: javascript validation

我有这些脚本......

 Name: <input type="text" id="inputName" onblur="verifyName(this.value)">

 <script type="text/javascript">
    function verifyName(nameInput)
    {
       if(nameInput=="")
       {
          // error
          alert('please enter your name');
       }
       else
       {
          // accepted
       }
    }
 </script>

如果用户不想在文本框中输入他/她的名字,则会显示错误。

如果用户懒惰并且他/她将输入“”(一个或多个空格)作为名称怎么办?这可以被JavaScript接受。它将在if条件下返回false。

但我希望用户不要只输入空格。有没有办法做到这一点?

注意:输入的任意数量的空格(没有任何字母)都是无效的。


如果用户输入以下文本之一,JavaScript应接受/拒绝输入,如下所示......

"John" --> valid
"" --> invalid
"John Doe" --> valid
"    " --> invalid
"John     Doe" --> valid (can be edited to remove too many spaces)
"      Kim" --> valid (can be edited to remove too many spaces)
" " --> invalid

4 个答案:

答案 0 :(得分:0)

在进行检查之前修剪字符串。见下文

if(nameInput.trim()=="")
{
     // error
     alert('please enter your name');
}
else
{
 // accepted
}

答案 1 :(得分:0)

一个(很多)可能的函数实现使用正则表达式:

function verifyName(nameInput) {
    return input.match(/\w{1,12}/) === null ? false : true;
    //                       ^^
    //    Or some other sensible limitation to the length of a name. 
}

答案 2 :(得分:0)

function verifyName(nameInput)
{
   nameInput = nameInput.trim();
   if(nameInput=="")
   {
      // error
      alert('please enter your name');
   }
   else
   {
      // accepted
   }
}

trim()函数将删除所有空格。如果var中只有空格,则trim()返回“”。

答案 3 :(得分:0)

您可以使用正则表达式替换字符串中的所有空格,然后检查其长度。如果在删除所有空格后至少剩下一个字符 - 那么您的有效案例是对吗?

&#13;
&#13;
testInput = function(){

  var inpStr = $('#txtInp').val();
  
  
var teststr = inpStr.replace(/\s/g, "");
 
  //$('#testStrDiv').text(teststr);
  
  if((teststr.length)&&(teststr.length>0))
    {
      $('#divOutp').html('<b>Valid! </b>');
      }
  else{
        $('#divOutp').html('<b>Invalid! </b>');
      }
  
  }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="txtInp" />

<input type="button" onclick="testInput()" value="test" />
<div id="testStrDiv" />
<div id="divOutp" />
&#13;
&#13;
&#13;