1

是否有一个标准的 javascript 函数可以将字符串拆分为两行相同(或几乎相同的行)而不破坏单词。

我真正想要的是:

- 如果文本包含少于 50 个符号(包括空格),则保持文本不变,

- 否则,将其拆分为长度相同(几乎相同)的两条线。

这需要以良好的方式显示文本,看起来很好。

例子:

Today is Monday.

Today is Monday, tomorrow is Tuesday.  //less than 50 symbols.

Today is Monday, tomorrow is 
Tuesday, after tomorrow is Wednesday.   //splitted into two lines, Tuesday is on the second line.
4

1 回答 1

1

一个简单的示例使用 split 来查找“中间”,尽管它与您的示例不同“中间”。如果您希望第一行通常更短,则可以使用 (s.length/2)-6 将拆分向左移动几个插槽。您甚至可以考虑尝试 (s.length*0.45) 向左一点;玩转并找到最适合您的文本的内容。

以下是如何找到靠近中间的空间的位置:

var s="Today is Monday, tomorrow is Tuesday, after tomorrow is Wednesday."; 
var p=s.slice(s.length/2).split(" ").slice(1).join(" ").length;
s.slice(0, s.length-p) + "\n" + s.slice(s.length-p);

/* == "Today is Monday, tomorrow is Tuesday, 
       after tomorrow is Wednesday."  */

编辑:请记住 "hello".slice( 2.5 ) 在 JS 中有效。

于 2013-07-15T15:41:20.827 回答