将反向字符串的第一个字母大写?JavaScript

时间:2016-10-09 05:28:17

标签: javascript arrays string

  • 翻译句子。(“你好吗?”)(“你好吗?”)

1)如何将问号留在原位而不是用​​“你”反转。

2)我如何只使用句子的第一个字母(你)。

这是我通过首先将其转换为数组而做出的反转。是否可以通过不创建任何函数来实现上述问题?仅仅是为了简单起见。

var str1 = "how are you?";  document.write(str1.split(" ").reverse().join(" "));

2 个答案:

答案 0 :(得分:3)

假设您只想保留某些标点符号,例如.!?中的任何标点符号:

function reverseSentences(sentence) {
  return sentence
    .trim()
    .toLowerCase()
    .split(/([.!?]+\s*)/) // split around ending punctuation
    .map(function(part, index) {
      return index % 2 === 0 // even indexes contain sentences, odd is punctuation
        ? capitalize(part.split(' ').reverse().join(' '))
        : part
    })
    .join('');
}

function capitalize(str) {
  return str.charAt(0).toUpperCase() + str.slice(1);
}

console.log(reverseSentences("How are you? That's good."));

答案 1 :(得分:0)

您可以尝试这样的简单功能

function revStr(val, mark) {   
   var qmIdx = val.indexOf(mark);
   var tmp = val.substring(0, qmIdx);
   var rev = tmp.split(" ").reverse().join(" ").toLowerCase();
   return rev.charAt(0).toUpperCase() + rev.slice(1) + mark;
}

revStr("How are you?", "?"); // You are how?