【问题标题】:Truncate a string if contains a word longer than a certain value如果包含比某个值长的单词,则截断字符串
【发布时间】:2018-03-04 17:39:55
【问题描述】:

如果包含比某个值长的单词,我想截断字符串。例如,如果字符串是这个:

“测试 fassfsaf 长字符串 1112faffasfsaffasfssafssssafafsas”

如果单词的大小> 8,我想截断字符串,那么结果必须是:

“测试 fassfsaf longstri”

有什么建议吗?

【问题讨论】:

  • 尝试取长度为 0-8 的子串,它应该可以工作

标签: javascript string truncate


【解决方案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(" "));

【讨论】:

    【解决方案2】:

    尝试使用" " 使用split() 字符串。然后使用slice(0,8) 条件重新创建带有映射的数组。最后,使用" " 使用join() 字符串

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

    【讨论】:

    • @Ram a.slice(0,8) 是不够的,因为它返回“test fas”而不是我想要的字符串对于 prasad 提出的解决方案,我在重建字符串时丢失了空格
    • @Ram 。这还不够。操作要求 if contains a word 每个单词。不只包含整个字符串。
    猜你喜欢
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多