将反转字符串的第一个字母大写?JavaScript 把一句话(你好吗?)倒过来(你好吗?)

将反转字符串的第一个字母大写?JavaScript 把一句话(你好吗?)倒过来(你好吗?),javascript,arrays,string,Javascript,Arrays,String,1) 如何保持问号在原来的位置,而不是用“你”反转 2) 我怎样才能使句子的第一个字母大写(你) 这就是我所做的,通过首先将其设置为数组来反转。为了简单起见,是否可以通过不创建任何函数来实现上述问题 var str1 = "how are you?"; document.write(str1.split(" ").reverse().join(" ")); 您可以尝试这样一个简单的函数 function revStr(val, mark) { var qmIdx = val.in

1) 如何保持问号在原来的位置,而不是用“你”反转

2) 我怎样才能使句子的第一个字母大写(你)

这就是我所做的,通过首先将其设置为数组来反转。为了简单起见,是否可以通过不创建任何函数来实现上述问题

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

您可以尝试这样一个简单的函数

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?

您可以尝试这样一个简单的函数

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?

假设您只想保留某些标点符号,就像任何

功能反转内容(句子){
返回判决
.trim()
.toLowerCase()
.split(/([.!?]+\s*)/)//围绕结尾标点拆分
.map(函数(部分,索引){
返回索引%2==0//偶数索引包含句子,奇数是标点符号
大写(部分拆分(“”)。反向()连接(“”))
:部分
})
.加入(“”);
}
函数大写(str){
返回str.charAt(0.toUpperCase()+str.slice(1);
}

log(reverseSentences(“你好吗?很好”)假设您只想保留某些标点符号,就像任何
一样

功能反转内容(句子){
返回判决
.trim()
.toLowerCase()
.split(/([.!?]+\s*)/)//围绕结尾标点拆分
.map(函数(部分,索引){
返回索引%2==0//偶数索引包含句子,奇数是标点符号
大写(部分拆分(“”)。反向()连接(“”))
:部分
})
.加入(“”);
}
函数大写(str){
返回str.charAt(0.toUpperCase()+str.slice(1);
}

log(reverseSentences(“你好吗?很好”)用于一个特定的句子,还是用于更一般的输入?输入是否仅限于一个句子?它的结尾总是只有一个标点符号吗?它是否可以嵌入标点符号(逗号、括号、引号等)?您需要更具体地说明您需要什么。创建函数可能会产生相反的效果。这会使你的代码看起来更简单。是为了那一句话,还是为了更一般的输入?输入是否仅限于一个句子?它的结尾总是只有一个标点符号吗?它是否可以嵌入标点符号(逗号、括号、引号等)?您需要更具体地说明您需要什么。创建函数可能会产生相反的效果。这将使您的代码看起来更简单。如果是
有吗?如果有多个句子呢?请参见编辑后的答案。该方法假设一个完整的问题只有一个
。对于多个句子,您可能需要将每个句子传递给函数。我相信函数必须自动找到标点符号。否则,整个任务就毫无意义。请参见另一个答案。可能不可能覆盖所有边缘情况。你需要确保简化问题。我不是OP。我只是告诉你,OP有一个学习示例,而你的解决方案对于教育目的几乎没有意义。如果它是
有吗?如果有多个句子呢?请参见编辑后的答案。该方法假设一个完整的问题只有一个
。对于多个句子,您可能需要将每个句子传递给函数。我相信函数必须自动找到标点符号。否则,整个任务就毫无意义。请参见另一个答案。可能不可能覆盖所有边缘情况。你需要确保简化问题。我不是OP。我只是告诉你,OP有一个学习的例子,你的解决方案对于教育目的没有什么意义。