javascript - 反转字符串大小写

标签 javascript string

我正在尝试编写一个函数,它接受字符串并将所有小写字母更改为大写字母,反之亦然。 “lower UPPER”将翻译成“LOWER upper”

这是我所拥有的:

var convertString = function (str){
var s = '';
var i = 0;
while (i < str.length) {
    var n = str.charAt(i);
        if (n == n.toUpperCase()) {
            n = n.toLowerCase;
        }
        else {
            n = n.toUpperCase;
        }

 i +=1; 
 s += n;

}
return s;
};
convertString("lower UPPER");

我正在使用 this website开始工作,并且输出了一条非常奇怪的消息。

Here is a pic of what happens after I run it.

最佳答案

除了 if 语句之外,您几乎所有内容都是正确的。您将 n 设置为其 toLowerCasetoUpperCase 方法,而不是其返回值。您需要调用这些方法并将 n 设置为等于它们的返回值:

var convertString = function (str) {
    var s = '';
    var i = 0;
    while (i < str.length) {
        var n = str.charAt(i);
        if (n == n.toUpperCase()) {
            // *Call* toLowerCase
            n = n.toLowerCase();
        } else {
            // *Call* toUpperCase
            n = n.toUpperCase();
        }

        i += 1;
        s += n; 
    }
    return s;
};

convertString("lower UPPER");

您得到的输出 ('function toUpperCase() { [native code] }...) 是将每个方法转换为字符串,然后连接到您的结果的结果字符串。您可以通过在控制台中运行以下任一命令来获得相同的结果:

  • console.log("".toUpperCase);
  • console.log("".toUpperCase.toString());

两者的结果都是function toUpperCase() { [native code] }

编码愉快!

关于javascript - 反转字符串大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35028105/

相关文章:

sql - SQL 中正则表达式的字符串追加 (Microsoft SQL Server 2008 R2)

string - Lua 用 string.gsub 进行普通搜索?

c++ - 使用 std::string 存储二进制数据不合适吗?

javascript - 在 JavaScript 中获取正则表达式的重复次数

Javascript 检查提交时的文本限制

javascript - 多个 显示更多/显示更少

javascript - Webpack 使用大型 ES6 模块构建性能缓慢

Java,计算字符串时的逻辑错误

python - 从 c 字符串创建可用的 python 函数(sympy 用例)

javascript - 如何在 javascript/vuejs 中从子 ID 中过滤父 json