2017-09-23 76 views
-2

如果包含长度超过特定值的单词,则要截断该字符串。例如,如果字符串是这一个:如果包含长于特定值的单词,则截断一个字符串

“测试fassfsaf longstring 1112faffasfsaffasfssafssssafafsas”

,我想截断字符串,如果一个字有大小> 8然后其结果必然是:

“测试fassfsaf longstri”

什么建议吗?

+0

试图利用长0-8的子字符串,它应该工作 –

回答

1

拆分使用split(" ")将返回字符串你一连串的话。你可以在这里使用filter(),接受元素直到长度大于8的第一个单词。使字符串在过滤器数组上返回使用join(" ")

var str = "test fassfsaf longstring 1112faffasfsaffasfssafssssafafsas"; 
 

 
str = str.split(" "); 
 
str = str.filter((x, index, arr) => !(x.length > 8 && arr[index-1].length > 8)); 
 
str[str.length - 1] = str[str.length - 1].substr(0,8); 
 

 
console.log(str.join(" "));

1

split()尝试使用" "。然后将串重新排列用slice(0,8) condition.And最后,join()字符串地图" "

var a="test fassfsaf longstring 1112faffasfsaffasfssafssssafafsas"; 
 
var r = a.split(' ').map(i=> i.slice(0,8)); 
 

 
console.log(r.join(" "))

+0

和'加入()'在结束.. – Nisarg

+1

@Ram a.slice(0,8)是不足够,因为它返回“测试FAS”,而不是我想要的字符串 对于prasad提出的解决方案,我在重建字符串 – NxA

+1

@Ram时丢失了空格。这还不够。 op要求*'如果包含一个单词* *每个单词。不与整个字符串只。 – prasanth

相关问题