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

时间:2014-01-21 20:50:41

标签: javascript jquery

我对js / jquery(显然)很新,我正在开发一个小项目,涉及将所有字母更改为toUpperCase,除了“o”,它将保持/更改为小写。

我已经实现了这个:http://jsfiddle.net/HwTEj/

$(function() {
$('input').keyup(function() {
this.value = this.value.toUpperCase();
    });
});

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

对此有任何帮助将不胜感激,因为我是新来的问题,请告诉我是否有任何其他信息需要指出我正确的方向。

3 个答案:

答案 0 :(得分:7)

要替换所有实例,您需要这样的内容:

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

编辑:

如果您想要替换将被替换的字符,您可以这样做(在这里使用o,f和h作为示例):

this.value.toUpperCase().replace(/[OFH]/g, function($1){ 
    return $1.toLowerCase();
  })

答案 1 :(得分:2)

Updated fiddle

$(function() {
    $('input').keyup(function() {
        this.value = this.value.toUpperCase().split('O').join('o');      
    });
});

答案 2 :(得分:1)

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

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

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