[英]Textarea - get each line, find line breaks
我想在textarea中获得每一行。 textarea很小,根据宽度限制包装单词。 所以我尝试过:
// Sample text: I want to find(line wrapped) all lines here
$("#textarea1").val().split(/(\r\n|\n|\r)/gm).length
// 1, not the right length, should be 2
$("#textarea1").val().split(/\r?\n/g).length
// 1
$("#textarea1").val().split("\n").length
// 1
$("#textarea1").val().split("\r").length
// 1
我也试过wrap="hard"
和white-space: pre-wrap
单独和一起white-space: pre-wrap
。
似乎没有找到换行符 !! 需要帮助,谢谢。
我认为就像你说的那样:textarea根据宽度限制包装单词 - 这意味着你找不到换行符。 您要查找的换行符是字符,并且这些字符尚未插入到您的文本中。
所以我这样做的方式是:
textarea in question - $("#text")
的textarea in question - $("#text")
到透明文本区域。 使用透明字体。 $("#newtext")
并将其附加到DOM。 this character's keyup
之前取值$(“#text”)。 将该值放入$("#newtext")
并检查$("#newtext").get(0).scrollHeight() > $("#newtext").height()
。 如果为true => this
字符导致换行符。 $("#newtext")
行,直到 $("#newtext").get(0).scrollHeight() === $("#newtext").height()
this
字符前取文字,添加\\n
, this
字符添加到$("#newtext").val()
$("#newtext").val()
应用于$("#text").val()
。 $("#newtext")
。 以上答案适用于类似的行 - stackoverflow.com/questions/3738490/finding-line-wraps - evolutionxbox昨天
因此,基本上我们将换行符转换为换行符,可以使用$("#text").val().split("\\n")
。
(注意 - 如果我们不将透明文本区域附加到DOM,则其scrollHeight()
将是undefined
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.