ikegami 在我的Angular项目中,我有一个textarea,从中读取innerHTML并向用户显示剩余字符数。同时,我通过innerText从同一textarea读取文本及其长度,并将其发送到服务器以存储在数据库中。 目前情况如下: innerHTML为:"hi<div><br></div><div>k</div><div><br></div><div>gh</div>" - 长度为9 innerText为:"hi\n\n\nk\n\n\ngh" - 长度为11 当用户在textarea中输入最大允许的字符数时,如果段落中使用了多个换行符,通过innerText读取时长度会超过最大限制。 我需要使这两种长度计算方式保持一致。
Arup Rakshit 出现此问题是因为您的HTML中每个部分之间包含了两个换行符。 使用<div>...</div>会使内容换到新行上。此外,在<div>内的<br>会创建第二个新行。 看起来您的输入实际上是: hi k gh 如果将此内容表示为单行,则实际上为:hi\n\nk\n\ngh,因为每行之间有两个换行符。 如果您希望HTML格式和文本格式之间有所对齐,您需要: 更新计算innerHTML长度的方式,使其更准确 或 使用innerText.replace(/\n\n/g, '\n')将两个换行符替换为一个