如何用Javascript检测textarea中的新空行?

时间:2013-10-25 20:37:28

标签: javascript html

我想检测文本区域中的新空行,如果用户只是按下文本区域,则不输入任何数据以返回false并回显消息。我做了一些研究并想到了这样的事情:

var validatef ....
var code = (e.keyCode ? e.keyCode : e.which);
if (validatef == 'a value here' || code == 13) { 
  somevarhere.textcontent = 'Message';
  return false;
}
else {....}

但它似乎不起作用。

5 个答案:

答案 0 :(得分:2)

您可以通过检查值来检测textarea中的空行:

\r\n(对我来说很好)或\n

只需将文字a value here替换为\r\n\n最适合您的文字。

修改

检查How to count string occurrence in string?以计算正则表达式的外观。因此,您可以设置for循环以在/\s/g上显示错误消息。

希望它有所帮助。

答案 1 :(得分:1)

只测试用户是否按下了两次

/\n\n/.test(this.value)

答案 2 :(得分:1)

试试这个

 $('textarea').on('keypress', function(e) {
    var val = $('textarea').val();
    if (e.which == 13) {
if(! /\S/.test(val)) {
   alert("no data");
}
    }
});

这会警告每个按键没有数据。

这是在jQuery中,但即使在简单的Javascript中它也会类似

  

以下是演示http://jsfiddle.net/TUCx8/

答案 3 :(得分:1)

根据问题的第一句,这可能是可能的解决方案之一:

var enters = 0;
$('textarea').keypress(function(event) {
    if (event.which == 13)
        enters++;
    else
        enters = 0;
    if (enters > 1) {
        alert('You hit 2 new lines!');
    }
});

实例http://jsfiddle.net/fp6xk/

答案 4 :(得分:0)

另一个解决方案是在文本结束前检查空行:

(function(){
    $('textarea').keyup(function(event) {
        if (/(\r?\n){2}$/.test($(this).val())) {
            alert('2 consecutive empty lines at the end!');
        }
    });
})();

它可以独立于连续输入印刷机工作。 http://jsfiddle.net/fp6xk/4/