Javascript 除空格外,文本区域将换行哪些字符?

Javascript 除空格外,文本区域将换行哪些字符?,javascript,html,css,textarea,Javascript,Html,Css,Textarea,我正在开发最新版本的插件Textarea Line Counter()。为了使其更加准确,我想识别文本的换行区域,因为它们太大,无法容纳行(如一系列重复字符) 我假设浏览器只在空格处包装文本。还有其他可以换行的字符吗?谢谢,看起来这取决于浏览器,我的Opera也包装在例如+%?$/([{}\°)? Safari/Chrome是否也在上 (估计还有很多)如果单词的长度超过了列的宽度,一些浏览器会在单词内部断开, 否则,它们会在空格处断裂 我注意到一些浏览器默认设置了这一点-在大多数Bowser中,

我正在开发最新版本的插件Textarea Line Counter()。为了使其更加准确,我想识别文本的换行区域,因为它们太大,无法容纳行(如一系列重复字符)


我假设浏览器只在空格处包装文本。还有其他可以换行的字符吗?谢谢,

看起来这取决于浏览器,我的Opera也包装在例如
+%?$/([{}\°)?

Safari/Chrome是否也在


(估计还有很多)

如果单词的长度超过了列的宽度,一些浏览器会在单词内部断开, 否则,它们会在空格处断裂

我注意到一些浏览器默认设置了这一点-在大多数Bowser中,您也可以使用:

textarea{word-wrap: break-word}

通过使用
textarea{word wrap:normal}
插件的好主意,您可以确定它不是设置的。解决准确性问题将是一个挑战

对于
textarea
处理字符串(除了空格处的换行符)或使用换行符的方式,没有通用的通用方法

IE与
,(){}?
产生了中断,但与
/*=+


在这个例子中,
textarea
似乎有一种“特殊”的感觉,就像一个
td
基于您的建议,我创建了一个解决方案。它相当大,事实上,我想我会将它制作成一个单独的插件,并将其包含在我的textarea行计数器中。它的工作原理如下:

  • 创建一个
    div
    作为容器,并将字体设置为等距字体(即每个字符的宽度相同)
  • 在容器内创建一个
    span
    ,并放置一个字母
  • 获取跨距的宽度度量值(一旦边距、填充和一些其他CSS属性被克隆,它将是字母的宽度)
  • 在容器中创建另一个div并克隆其CSS属性。将其宽度设置为步骤3中找到的字母宽度的两倍,并记录其高度
  • 要测试某个字符是否会导致换行,请将
    div的文本设置为:
    a[some character]a
    [some character]
    是您尝试测试的字符
  • 测试
    div
    的高度。如果它大于步骤4中找到的高度,则文本已换行

  • 我期待着发布这个插件。再次感谢你的建议。

    肯定还有至少两个字符:连字符
    -
    和em破折号
    -
    。谢谢-这是我在当前(1.2)中遇到的问题之一版本。包装的单词有时不算在内。我几天前才意识到,
    word wrap
    是罪魁祸首。谢谢!在上一个版本中,准确性是一个难题。在这个版本中,我可能能够自动执行它,这样当插件初始化时,它会根据可能的字符列表检查浏览器的行为你有这些统计数据吗?特别是包裹的数量?