繁体   English   中英

如何使用Javascript检测文本区域中的新空行?

[英]How to detect new empty line in textarea with Javascript?

我想在文本区域中检测到一个新的空行,如果用户只是在文本区域中按Enter,而不输入任何数据以返回false并回显消息。 我已经对以下内容进行了研究和思考:

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

但这似乎不起作用。

您可以通过检查以下值来检测文本区域中的空行:

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

只需在a value here\\r\\n\\n替换最适合您的文本a value here

编辑:

检查如何计算字符串中出现的字符串? 计算正则表达式的出现。 因此,您可以进行for循环以在/\\s/g上显示错误消息。

希望能帮助到你。

只是测试用户是否按两次Enter

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

尝试这个

 $('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/

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

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/

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

(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/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM