在 Javascript 中最近的 space 拆分 text/string

Split text/string at closest space in Javascript

我真的很纠结如何在最接近第 47 个字符的字符串处拆分文本。 这是怎么做到的?

var fulltext = document.getElementById("text").value;

var a = fulltext.slice(0, 47);
console.log(a);

var b = fulltext.slice(47, 47*2);
console.log(b);

var c = fulltext.slice(94, 47*3);
console.log(c);

这是一个JS Fiddle - http://jsfiddle.net/f5n326gy/5/

谢谢。

您可以使用带有 fromIndex 第二个参数的 indexOf 方法找到下一个单词边界。之后,您可以使用 slice 获取左侧部分或右侧部分。

var fulltext = "The slice() method selects the elements starting at the given start argument, and ends at, but does not include, the given end argument.";    
var before = fulltext.slice(0, fulltext.indexOf(' ', 47));
var after  = fulltext.slice(fulltext.indexOf(' ', 47));
alert(before);
alert(after);

如果您只对第一部分感兴趣,请使用

var a = fulltext.match(/^.{47}\w*/)

查看演示 (fiddle) here


如果要将整个字符串拆分为多个子字符串,则使用

var a = fulltext.match(/.{47}\w*|.*/g);

查看演示 (fiddle) here

...并且如果您希望子字符串不以单词分隔符(例如 space 或逗号)开头并且希望将其包含在上一个匹配项中,则使用

var a = fulltext.match(/.{47}\w*\W*|.*/g);

查看演示 (fiddle) here