匹配文本大小写 JavaScript



我想将字符串的大小写与示例字符串的大小写相匹配。例如。

var str = "hello world"
var example1 = "My Text Is Great"
var example2 = "my Text Is Great"
var example3 = "My text is great" 
answer1 = someGreatFunction(str,example1)//should return Hello World
answer2 = someGreatFunction(str,example2)//should return hello World
answer3 = someGreatFunction(str,example3)//should return Hello world

我希望这能帮助你理解我想要什么。我不想担心引号或任何形式的标点符号。但是,如果它包括对此的支持,那就太好了。

附言直到现在我还没有尝试做任何事情,因为我一无所知。

附言如果您认为这个问题是重复的,请不要标记它。也许我已经浏览了解决方案,但没有找到任何令人满意的东西。

您可以使用

以下方法

  1. 首先获取小写和大写指标数组

"My Text Is Great".split(" ").map( s => s.toLowerCase() == s ? "L" : "U" )
  1. 使用特定索引处的标志将它们转换为适当的大小写。

"hello world".split(/s/).map((s, i) => (indicators[i] == "U" ? s.charAt(0).toUpperCase() : s.charAt(0).toLowerCase() ) + s.substring(1) ).join(" ");

演示

function matchCase(input, master) {
  var indicators = master.split(" ").map(s => s.toLowerCase() == s ? "L" : "U");
  return input.split(/s/).map((s, i) => (indicators[i] == "U" ? s.charAt(0).toUpperCase() : s.charAt(0).toLowerCase() ) + s.substring(1) ).join(" ");
}
var example1 = "My Text Is Great"
var example2 = "my Text Is Great"
var example3 = "My text is great" 
console.log( matchCase( "hello world", example1 ) );
console.log( matchCase( "hello world", example2 ) );
console.log( matchCase( "hello world", example3 ) );

最新更新