【问题标题】:Check whether the first character is a space检查第一个字符是否为空格
【发布时间】:2012-05-23 19:00:02
【问题描述】:

如何使用 jQuery 检查输入字段的第一个字符是否为空格?我需要检查以使用户无法输入像“rreea”这样的用户名。允许在第一个字符之后 有空格。例如,“他的名字”可以,但“他的名字”或“他的名字”不被接受。

【问题讨论】:

    标签: jquery validation input textfield


    【解决方案1】:

    尽管检查只是使用$.trim 方法添加字符串修剪。它会删除字符串左右边缘的所有空格。

    var value = $.trim($("input").val());
    

    否则,你可以使用

    $("input").val().substring(0, 1)
    

    安全地获取第一个字符。

    【讨论】:

    • Trim 不检查是否只有第一个字符为空
    • @FrançoisWahl 确实如此,但它使检查前导空格变得多余。
    • 我认为 OP 明确要求检查第一个字符是否为空白空间...
    • 是的,这个解决方案在没有实际拒绝它的情况下修剪它,这就是要求for example "his name" is ok. Only " his name" or " hisname" are not accepted.
    • 我和 Rory 和 VisioN 在一起。很可能 trim 正是 OP 试图实现的,只是没有意识到有这样的功能。只要指出它做了它所做的事情,而不是明确提出的要求,我认为这很可能是 OP 最终接受的。打个比方:如果用户询问数据库表中可以拥有的最大列数是多少,最好的答案通常(也许并不总是)不是数字,而是表明数据库设计存在问题。
    【解决方案2】:

    您可以使用myString.substring(0,1)myString[0] 来获取第一个字符。

    您可以修剪输入;这不会检查它是否以空格开头,它使这样的检查变得多余,并为您提供可用的输入,而不管原始字符串是否有初始空格。

    您还可以匹配/^\s/ 的字符串,它表示一个初始空格,或者/^\s+/ 表示任意数量的初始空格。

    【讨论】:

      【解决方案3】:

      您可以像数组一样访问字符串中的字符。所以以下应该工作:

      if ($('#your-input').val()[0] === " ") {
          // error
      }
      

      但是如果有两个空格呢?我认为你应该检查你的价值的修剪副本......

      var value = $('#your-input').val();
      if (value.trim() !== value) {
          // error
      }
      

      trim() 方法随 Javascript 1.8.1 提供。如果你想支持早期版本,你也可以$.trim(value)。希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2015-09-04
        • 1970-01-01
        • 2017-08-19
        • 2018-11-12
        • 2015-02-07
        • 2011-05-29
        • 2016-05-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多