Javascript 如何更改输入中某些字母的大小写?

Javascript 如何更改输入中某些字母的大小写?,javascript,jquery,Javascript,Jquery,我对js/jquery非常陌生(很明显),我正在从事一个小项目,该项目涉及将所有字母的大小写改为toUpperCase,但“o”除外,它将保留/改为小写 我实施了以下措施: 然而,我正在努力定义某些保留/更改为小写的字母 在此方面的任何帮助都将不胜感激,因为我是一个新发布问题的人,所以请告诉我您是否需要任何其他信息来为我指明正确的方向。要替换所有实例,您将需要以下内容: this.value.toUpperCase().replace(/O/g, "o") 编辑: 如果要选择要替换的字符,可以

我对js/jquery非常陌生(很明显),我正在从事一个小项目,该项目涉及将所有字母的大小写改为toUpperCase,但“o”除外,它将保留/改为小写

我实施了以下措施:

然而,我正在努力定义某些保留/更改为小写的字母


在此方面的任何帮助都将不胜感激,因为我是一个新发布问题的人,所以请告诉我您是否需要任何其他信息来为我指明正确的方向。

要替换所有实例,您将需要以下内容:

this.value.toUpperCase().replace(/O/g, "o")
编辑:

如果要选择要替换的字符,可以这样做(此处使用o、f和h作为示例):


其他答案都很好,但这里有一个选择:

this.value = this.value.replace(/(o)|./ig, function(x, y) { 
    return y ? y.toLowerCase() : x.toUpperCase(); 
});

如果需要将其他字符小写,可以将模式中的
o
替换为字符类(例如
[xyz]
)。

转换字符串后,在技术正确的情况下,将出现的
o
替换为
o
,使用split/join而不是简单的替换来增加混乱是没有意义的,这正是该方法的目的。@IngoBürk同意。将库萨的解决方案提升为更好的答案两个答案(此答案和通过rwisch45更新的fiddle)都非常有效-但是由于使用了简单的替换方法,我将此标记为我接受的答案。感谢大家对一个非常明显的问题的快速回答!如果您选择这样做,请注意,您将在每个kepress上更新并替换整个值!
this.value.toUpperCase().replace(/[OFH]/g, function($1){ 
    return $1.toLowerCase();
  })
$(function() {
    $('input').keyup(function() {
        this.value = this.value.toUpperCase().split('O').join('o');      
    });
});
this.value = this.value.replace(/(o)|./ig, function(x, y) { 
    return y ? y.toLowerCase() : x.toUpperCase(); 
});