我有一个textarea
<textarea id="text" name="text" rows="6"></textarea>
<style>
#text { width: 30%; }
</style>
提交表单时,我需要检查输入是否超过6行。我有一个JS代码,它检查滚动条(滚动条存在=超过6行=无效输入),它完美地工作。棘手的部分是,如果禁用JS,如何用PHP验证输入?
我试过这样的事情
public function overflowValidator($input, $maxLines, $cols) {
$linebreakCount = substr_count($input, "\n");
$overflow1 = ($linebreakCount <= $maxLines);
$overflow2 = (ceil(strlen($input) / $cols) <= $maxLines);
return $overflow1 && $overflow2;
}
最大的问题是textarea的宽度是动态的(响应式设计),所以我不能轻易地说出一行中有多少个字母。我担心这无法解决,但也许有一个我不知道的解决方案......
答案 0 :(得分:2)
计算总行数: -
$lines = preg_split('/\n|\r/',$str);
$Total_lines = count($lines);
echo $Total_lines;
答案 1 :(得分:1)
计算字符总数而不是行数可能是个更好的主意,但这里是允许您这样做的代码:
preg_match_all("/(\n)/", $_POST['text'], $matches);
$total_lines = count($matches[0]) + 1;