gpt4 book ai didi

javascript - 在 Javascript 中缩写句子

转载 作者:行者123 更新时间:2023-11-29 19:09:31 25 4
gpt4 key购买 nike

我正在尝试编写一个函数来缩写句子中的单词,其中一个单词中有 4 个或更多字符。所以“骑大象真的很有趣!”变成“E6t-r3s 是 r4y 的乐趣!”。

我设法找到了所有单词的缩写,但我想不出三件事。

  1. 我的代码要求字符串以空格结尾。如何重新组织它,使其不必以工作空间结尾?
  2. 我的代码不能正确处理 3 个或更少字符的单词 - 这些不能缩写(我在 if 语句之后尝试了一个 else if 语句,但它让我感到困惑)
  3. 它不考虑逗号、分号或其他标点符号。有没有一种方法可以在不使用一堆 === 语句填充 if 条件的情况下做到这一点?

编辑:我也对非 RegEx 答案感兴趣(尽管已发布的答案很有帮助),因为我是编程新手并且仍在尝试找出循环。

function abbrv(str) {
var word=""
var newStr=""
var counter= 0
var oldCounter= 0
for (var i=0; i<str.length; i+=1){
counter+= 1
word+= str[i]
if(str[i]===" "||str[i]==="-"){
newStr += word[oldCounter]+(counter-(oldCounter+3)).toString()+word[counter-2]+str[i]
oldCounter= counter
}
}
console.log(newStr)
}

abbrv("Elephant-rides are really fun ");

最佳答案

您可以使用 \b 正则表达式来匹配单词:

function abbrWord(word) {
if (word.length <= 3) return word; // This also filters out ", " or "-"

return word[0] +
(word.length - 2) +
word[word.length - 1];
}

function abbrv(str) {
return str.split(/\b/) // Create an array of words and word boundaries
.map(abbrWord) // for each item in the array, replace with abbr.
.join(""); // join items together to form a string

}

console.log(abbrv("Elephant-rides are really fun"))

注意事项:

  • 很高兴将您的单词缩写句子拆分 逻辑分开。这使得更改两者之一而不影响另一个变得容易
  • 使用正则表达式,可以通过多种方式快速搜索特定的字符模式。查看 matchtest

关于javascript - 在 Javascript 中缩写句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40241687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com