所以我基本上需要用split加上“.”在10个单词之后,所以我没有计算单词,而是计算空格,所以每10个空格字符之后我想添加“.”,那么如何使用正则表达式空间字符呢?
发布于 2016-08-17 18:59:24
使用更少的代码执行:
const text = 'this is some sample text that should be cut after the tenth space character'
let cut_text = text.split(' ').slice(0, 10).join(' ').concat('...')将返回:这是一些样本文本,应该在.
发布于 2016-08-17 13:55:05
你可以做这样的事。
首先,在空间上拆分字符串,这样就会有一个字符串数组。
var arr = str.split(' ');不需要计算空格,您可以在这样的循环中跳过10个索引。
for(var i = 0; i < arr.length; i = i + 10){
arr.splice(i, 0, '...');
}现在,为了恢复拆分之前的单词之间的间距,这里有一行额外的代码。
for(var i = 1; i < arr.length; i = i+=2){
arr.splice(i, 0, ' ');
}我们知道,在每个索引之后,在分割之前都有一个空格。
然后你可以通过循环再组合你的arr。
var newString = '';
for(var i = 0; i < arr.length; i++){
newString = newString + arr[i];
}发布于 2016-08-17 15:10:39
实际上你不需要RegEx来执行这样的任务.扩展@Umair答案以获得进一步的功能,您可以创建一个函数,您可以用它调用每个字符串,并分别指定单词数和分隔符。
函数
function insertStrEvery(target, string, count) {
wordsArr = target.split(' ');
wordsCount = wordsArr.length;
for (var i = count; i < wordsCount; i = i+count) {
wordsArr.splice(i, 0, string);
console.log(i)
}
newString = wordsArr.join(' ');
return newString;
};,那么您可以在任何具有文本的DOM元素上调用它。
$(document).ready(function() {
target = $('p').text();
insertStrEvery(target, '...', 10)
console.log(insertStrEvery(target, '...', 3));
});https://stackoverflow.com/questions/38998364
复制相似问题