我試圖編寫一個函數來縮寫一個句子中的單詞,其中有一個單詞中有4個或更多個字符。所以「大象車真的很有趣!」變成「E6t-r3s很有趣!」。Javascript中的縮寫語句
我設法起牀,我略所有的話,但我無法弄清楚三件事情。
- 我的代碼要求字符串以空格結尾。如何重新組織它,所以它不必結束它的工作空間?
- 我的代碼不會爲3點或更少的字符的話正常工作 - 這些都不是縮寫(我試過一個else if語句if語句之後,它讓我感到困惑)
- 它不佔逗號,分號或其他標點符號。有沒有辦法做到這一點,而不是用一堆===語句填充if條件?
編輯:我也會對非RegEx答案感興趣(雖然已發佈的答案有幫助),因爲我是編程新手,並且仍在努力找出循環。
function abbrv(str) {
\t 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
}
}
\t console.log(newStr)
}
abbrv("Elephant-rides are really fun ");
對長單詞使用'replace'和正則表達式是一個很好的補充!可能已經更好地保留了以前的帖子,並在我的回答下將其評論爲一個建議,雖然...之前有2個多功能答案,現在你只是我的一個補丁版本... – user3297291
編輯也適用。謝謝。 – user3297291