我将如何编写一个函数,该函数接受一个作为句子的自变量,并返回一个新句子,其中所有单词都被反转,但顺序与原始句子相同?

测试用例:

wordsReverser(“希望很有趣。”);
将返回:

“sihT si nuf,yllufepoh。”

这是我到目前为止的内容,但是请注意,我无法获得句号和逗号以保持原位。我不知道这是面试官的错字还是什么?

function wordsReverser(str){
  return str.split(' ').
    map(function(item) {
        return item.split('').reverse().join('');
    }).join(' ');
}

wordsReverser("This is fun, hopefully.");
//Output: 'sihT si ,nuf .yllufepoh'

最佳答案

尝试这种方式:

function wordsReverser(str){
  return str.replace(/[a-zA-Z]+/gm, function(item) {
        return item.split('').reverse().join('');
    });
}

wordsReverser("This is fun, hopefully.");
//Output: 'sihT si nuf, yllufepoh.'

09-11 18:18