我正在使用此代码检查插入符号是否位于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");
}
});
这将记录“有东西”
上面的行将记录为空,而这将记录“有东西”如果我以空格结束该行,这将记录为空
答案 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");
}
});