【问题标题】:validate textbox for spaces only仅验证空格的文本框
【发布时间】:2012-03-13 12:03:33
【问题描述】:

如何验证我的文本框是否只有空格?我已经验证了一个空文本框,但是如何验证一个只有空格的文本框。

如果输入的字符串只有空格,我希望文本框的行为类似于空文本框。

谢谢。

【问题讨论】:

  • 这样一个懒惰的问题 ....包括一些你当前的代码...包括一些输入和预期结果的例子...你想要这个在 PHP还是在 JavaScript 中?
  • Trim 检查其内容之前的值。

标签: php javascript html


【解决方案1】:

如果我正确理解了您的问题,那么您正在寻找这样的内容:

function consistsEntirelyOfWhitespace(textBox) {
    return (textBox.value.match(/^\s+$/) !== null);
}

【讨论】:

    【解决方案2】:

    始终修剪文本字段的值,这样您就不必在 SPACE 上进行验证,例如(使用 jQuery):

    var value = $.trim(('#theId').val());
    

    【讨论】:

      【解决方案3】:

      试试这个功能:

      function validate() {
          var field = document.getElementById("myField");
          if (field.value.replace(/ /g, "").length == 0)  {
              alert("Please enter some data (not spaces!)");
          }
      }
      

      【讨论】:

        【解决方案4】:

        来自steven levithan blog on Faster javascript trim的参考

        使用以下函数在javascript中修剪字符串的前导和结束空格

        <script type='text/javascript'>
        
        function validate()
        {
          var str= document.getElementById('str').value;
        
           if(str== '' || trim(str) == '')
           { 
                 alert('Invalid string'); 
                 return false;
           }
           else
           {
               return true;
           } 
        }
        function trim (str) {
            str = str.replace(/^\s+/, '');
            for (var i = str.length - 1; i >= 0; i--) {
                if (/\S/.test(str.charAt(i))) {
                    str = str.substring(0, i + 1);
                    break;
                }
            }
            return str;
        }
        </script>
        

        【讨论】:

        • 我想知道你为什么不使用明显的str = str.replace(/^\s+/, '').replace(/\s+$/, '');。相反,您只需使用正则表达式删除前导空格,并对尾随空格使用循环,其中测试甚至是否定的。 (\S 而不是 \s)。这使得它有点难以阅读。
        • @Leif http://blog.stevenlevithan.com/archives/faster-trim-javascript blog.stevenlevithan.com -- 更快的 JavaScript 修剪
        • 太棒了。您应该在回答中提及这一点。
        • 现在查看 2008-02-04 的参考文献编辑。他在 while 循环中使用肯定检查 (\s)。如果必须保持循环,这就是我的想法。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-07-30
        • 1970-01-01
        • 2014-05-05
        • 1970-01-01
        • 2012-07-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多