【问题标题】:Disallow only whitespaces or show alert only if the user types letters仅当用户键入字母时才允许空格或显示警报
【发布时间】:2015-02-03 06:01:42
【问题描述】:

用户应该在 textarea 中输入一些信息(在我的例子中是在 p 标签内),这些信息主要是字符串。但是,我想阻止用户只输入空格[连续多个空格],我会提醒他输入有意义的内容。如何检查这种情况? "if there are no normal alphabets; then alert blahblah" 是工作逻辑吗?我该如何编码?

到目前为止的代码

$("#saveText").click(function() {
  var grabbed = $(".froala-element p").text();
  if (grabbed === "") {
    alert("No cheating :) Please type something.");
  } else {
    alert(grabbed);
  }
});  

这就是我到目前为止所得到的。也欢迎使用 jQuery 解决方案。

【问题讨论】:

    标签: javascript jquery regex whitespace removing-whitespace


    【解决方案1】:

    您可以 test 反对仅代表空格的正则表达式 (/^\s*$/):

    $("#saveText").click(function() {
      var grabbed = $(".froala-element p").text();
    
      if (/^\s*$/.test(grabbed)) {
        alert("No cheating :) Please type something.");
      } else {
        alert(grabbed);
      }
    });
    

    这处理常规空格、制表符、换行符等,以及没有输入的情况。

    正则表达式本身分解如下:

    ^    Beginning of the string
    \s   Any whitespace character
    *    Zero or more occurrences of previous
    $    End of the string
    

    您也可以反过来测试并使用/\S/ 检查是否存在至少一个非空白字符,这可能会更有效一些。

    【讨论】:

    • 太棒了!这行得通。我现在知道为什么我们应该学习正则表达式,尽管我发现它很难掌握。感谢您提供相关链接。
    • @ThomasSebastian 正则表达式确实很难掌握,但了解基础知识已经能让你走得很远。
    • 我从没想过“另辟蹊径”的想法可以实现。谢谢那个。这当然是个好主意。但我会弄清楚自己,因为我已经问太多了,哈哈。
    • if (grabbed.trim() === "") 做同样的事情,而且更简单。
    • @Vizkos 确实简单一点。
    【解决方案2】:

    如果文本在'p'标签中,你的代码是可以的,如果是textarea,应该是:

    var grabbed = $(".froala-element textarea").val();
    

    【讨论】:

    • 我很抱歉。这是我的错。它位于p 标签中。我只是想清楚地说明情况。因此就这样写了。不过谢谢。这肯定会对某人有所帮助。
    【解决方案3】:

    尝试监听 'blur' 和 'paste' 事件以确保用户没有输入空白字符,如下所示:-

    http://jsfiddle.net/chetanbh/024jvy5h/

    $('#type_something').on('paste', function(event){
    var element = this;
    setTimeout(function () {
        var text = $(element).val();
        if(text.trim().length <= 0) {
            alert('Sorry, paste something else, not empty string');
            $(element).val('');
        }
    }, 100);
    

    });

    $('#type_something').on('blur', function(event){
    var element = this;
    var text = $(element).val();
    if(text.trim().length <= 0) {
        alert('Sorry, type something else, not blank characters');
        $(element).val('');
    }
    

    });

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-03
      • 2013-05-14
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 1970-01-01
      • 2013-12-14
      • 2019-08-25
      相关资源
      最近更新 更多