反向字符串大于一定长度

  • 本文关键字:大于 字符串 javascript
  • 更新时间 :
  • 英文 :


我正在研究一个问题,我需要能够逆转一个句子,但只有大于4的单词可以逆转。其余的单词必须保持原样。我试着检查看看长度是否大于4,但这并没有返回我正在寻找的结果。我所需要做的就是反转句子中大于4的单词。如有任何帮助,不胜感激。

编辑:这是我知道怎么做的简单方法。它颠倒了整个句子。我确信需要某种方法来分解每个单词并确定单词的长度,然后将句子重新组合起来,但我不知道如何做到这一点。
var sentence = "This could be the answer I need";
if (sentence.length > 4) {
 console.log( sentence.split('').reverse().join(''));
}

谢谢

总之:

var s = 'This is a short sentence'
  , e = s.split(' ').map(function(v){ return v.length>4?v.split('').reverse().join(''):v; }).join(' ');
console.log(e); // 'This is a trohs ecnetnes'

解释说:

var s = 'This is a short sentence' // set test sentence
  , e = s.split(' ')               // 'This is a short sentence' ==> ['This','is','a','short','sentence']
         .map(function(v,i,a){     // REPLACE the value of the current index in the array (run for each element in the array)
            return v.length > 4    // IF the length of the a 'word' in the array is greater than 4
                 ? v.split('')     // THEN return: 'word' ==> ['w','o','r','d']
                    .reverse()     // ['w','o','r','d'] ==> ['d','r','o','w']
                    .join('')      // ['d','r','o','w'] ==> 'drow'
                 : v;              // OR return: the original 'word'
         }).join(' ');             // ['This','is','a','trohs','ecnetnes'] ==> 'This is a trohs ecnetnes'
console.log(e); // 'This is a trohs ecnetnes'

您没有向我们展示您的源代码,因此很难知道您取得了什么进展。我不想只给您代码,从而消除了学习如何将其组合在一起的机会,我建议您查看以下内容:

  • String split()方法,可用于将句子拆分为数组中的单个单词

  • 了解如何在for循环中遍历字符串数组,查找长度大于4个字符的字符串

  • 了解如何在原位反转字符串-参见此答案。只对超过正确大小的字符串应用此方法。

  • 请确保将原始字符串替换为数组中的反向字符串。
  • 然后理解Array join()方法是如何工作的

如果我的描述过于简单化了,我很抱歉,但是从你的问题中很难理解你有多需要说明。

最简单的方法是:在空格上分割字符串。(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split)

使用forEach函数遍历每个元素,如果长度> 4则反转(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach)

然后使用join将数组的所有元素放入一个字符串(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/join)

//对于大于等于5的字长

function reverseString(s){
  return s.split(' ').
      map( v => { 
         return v.length > 4 ?  v.split('').
         reverse().join('') : v; 
      } ).join(' ');  
}

function reverseString(string){
  return string.replace(/w{5,}/g, function(w) { return w.split('').reverse().join('') })
}

用你的字符串字长替换

使用regex匹配至少5个字符的单词,并用反向字符替换:

var s = "I am working on a problem where I need to be able to reverse a sentence but only words that are greater than 4 can be reversed.";
s2 = s.replace(/b(wwwww+)b/g, function(word) {
    return word.split("").reverse().join("");
});
console.log(s2);

输出:

I am gnikrow on a melborp erehw I need to be able to esrever a ecnetnes but only sdrow that are retaerg than 4 can be desrever. 

小提琴

最新更新