最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

jquery - Split textstring at closest space in Javascript - Stack Overflow

programmeradmin0浏览0评论

I'm really struggling how to split the text at the closest string to the 47th character. How is this done?

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);

Here is a JS Fiddle - /

Thanks.

I'm really struggling how to split the text at the closest string to the 47th character. How is this done?

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);

Here is a JS Fiddle - http://jsfiddle.net/f5n326gy/5/

Thanks.

Share Improve this question edited Jan 3, 2015 at 19:35 Ωmega 43.7k35 gold badges141 silver badges211 bronze badges asked Jan 3, 2015 at 19:03 Tristan KirkpatrickTristan Kirkpatrick 1552 silver badges11 bronze badges 3
  • 3 Closest next of previous, or not important? – dfsq Commented Jan 3, 2015 at 19:08
  • 1 why not simplifying questions as much as possible, and posting var fulltext = 'my text here directly and keep us focus directly on your problem' – amd Commented Jan 3, 2015 at 19:40
  • Hi, as long as the three lines of text read okay, I don't mind which. @dfsq – Tristan Kirkpatrick Commented Jan 3, 2015 at 19:50
Add a comment  | 

2 Answers 2

Reset to default 11

If you are interested in just the first part, then use

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

See demo (fiddle) here.


If you want to split the entire string to multiple substrings, then use

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

See demo (fiddle) here.

...and if you wish substrings do not start with the word separator (such as space or comma) and prefer to include it with the previous match, then use

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

See demo (fiddle) here.

You can find the next word boundary using indexOf method with fromIndex second parameter. After that you can use slice to get either left part or right one.

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);

发布评论

评论列表(0)

  1. 暂无评论