【问题标题】:Convert uppercase and lowercase in JavaScript [duplicate]在javascript中转换大写和小写[重复]
【发布时间】:2017-03-04 16:29:04
【问题描述】:

我想做一个在Javascript中转换大小写的代码。

例如,“嗨,堆栈溢出。” ----> '嗨,堆栈溢出'

我该怎么做?

【问题讨论】:

  • 你尝试了吗?

标签: javascript string uppercase lowercase


【解决方案1】:
<!DOCTYPE html>
<html>
<head>
<title>hello</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
</head>
<body>

<script>
$(document).ready(function(){
    var x = 'Hi, Stack Overflow.';

    alert(caseAlter(x));

    function caseAlter(txt){
        var output = "";

        for(var i = 0; i < txt.length; i++){
            if(txt[i] == txt[i].toUpperCase()){
                output += txt[i].toLowerCase();
            }else{
                output += txt[i].toUpperCase();
            }           
        }

        return output;
    }

});
</script>
</body>
</html>

【讨论】:

    【解决方案2】:

    您可以使用map() 尝试这个简单的解决方案

    var a = 'Hi, Stack Overflow!'
    
    var ans = a.split('').map(function(c){
      return c === c.toUpperCase()
      ? c.toLowerCase()
      : c.toUpperCase()
    }).join('')
    
    console.log(ans)

    【讨论】:

      【解决方案3】:

      为您执行此操作的函数:

      function reverseCase(input) {
          var output = []
          for(var char in input) {
              var character = input[char]
              if(character == character.toUpperCase())
                  output.push(character.toLowerCase())
              else
                  output.push(character.toUpperCase())
          }
          return output.join('')
      }
      

      【讨论】:

      【解决方案4】:
      var input = 'Hi, Stack Overflow.'
      var arr = input.split(' ');
      
      alert(arr);
      var output = arr.map(function(elem){
      
        return (elem[0].toLowerCase() + elem.substring(1,elem.length).toUpperCase());
      
      });
      
      alert(output.join());
      

      【讨论】:

        【解决方案5】:

        var hi = 'Hi, Stack Overflow.';
        
        var hI = hi.split("");
        for(var i=0;i<hI.length;i++){
        if(hI[i] == hI[i].toLowerCase())hI[i]  = hI[i].toUpperCase();
        else if(hI[i] == hI[i].toUpperCase())hI[i] = hI[i].toLowerCase();
        } 
        hI = hI.join("");
        alert(hI);
        //'hI, sTACK oVERFLOW'

        【讨论】:

          【解决方案6】:

          您可以遍历每个字符,然后将其转换为小写(如果它是大写字母),如果它是小写字母则转换为大写字母,或者如果两者都不是(如果它是逗号、冒号等):

          str = 'Hi, Stack Overflow.';
          res = '';
          for (var i = 0; i < str.length; ++i) {
              c = str[i];
            if (c == c.toUpperCase()) {
              res += c.toLowerCase();
            } else if (c == c.toLowerCase()) {
              res += c.toUpperCase();
            } else {
              res += c;
            }
          }
          

          【讨论】:

          • 另请参阅此答案以获得更高级的解决方案:stackoverflow.com/a/38703925/1743938
          • 通常不考虑直接改变字符串(通过访问它的索引)。通常最好将其转换为数组(使用不带任何参数的 .split()),然后遍历数组并使用 .join() 重新组合字符串。就像一个想法。
          猜你喜欢
          • 2013-03-29
          • 2016-02-24
          • 2013-01-25
          • 2011-01-23
          • 2022-01-19
          • 1970-01-01
          • 2018-08-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多