找出textarea中的行是否为空

时间:2014-01-08 02:25:33

标签: javascript jquery regex

我正在使用此代码检查插入符号是否位于textarea内的空行。它运行良好,但有一个缺陷:如果你用一些文本开始一行并用空格完成它,代码认为该行是空的;这不是真的。我不关心换行的结果。

这是一个小提琴:http://jsfiddle.net/jZN5w/

$('#area').on("keyup change focus", function() {
    if( this.value.substr(0,this.selectionStart).match(/(?:^|\s+)$/)
     && this.value.substr(this.selectionStart).match(/^(?:\s+|$)/)) {
        console.log("empty");
    } else {
        console.log("has stuff");
    }
});

这将记录“有东西”

上面的行将记录为空,而这将记录“有东西”如果我以空格结束该行,这将记录为空

1 个答案:

答案 0 :(得分:2)

您的正则表达式不会查找空行,而是查找空格。

$('#area').on("keyup change focus", function() {
    if( this.value.substr(0,this.selectionStart).match(/(?:^|\n|\r)\s*$/)
     && this.value.substr(this.selectionStart).match(/^\s*(?:\n|\r|$)/)) {
        console.log("empty");
    } else {
        console.log("has stuff");
    }
});

http://jsfiddle.net/jZN5w/6/