Javascript函数:逗号后的大写

Javascript函数:逗号后的大写,javascript,Javascript,我试图创建一个函数onkeydown(),强制文本输入字段中的所有字母在逗号(“,”)后大写 我知道我可以使用此功能使所有字母大写: function makeUppercase(field) { field.value = field.value.toUpperCase(); } 但我不知道如何说只有在出现逗号后才能执行此功能。我想一种方法是执行测试: if (field.value.indexOf(',') == -1) // comma doesn't exist in the s

我试图创建一个函数onkeydown(),强制文本输入字段中的所有字母在逗号(“,”)后大写

我知道我可以使用此功能使所有字母大写:

function makeUppercase(field) {
   field.value = field.value.toUpperCase();
}

但我不知道如何说只有在出现逗号后才能执行此功能。

我想一种方法是执行测试:

if (field.value.indexOf(',') == -1) // comma doesn't exist in the string
{
   // add the character
}
else
{
   // add the uppercase version of the character.
}

regexp适用于类似的事情。差不多

function makeUpperCaseAfterCommas(str) {
    return str.replace(/,\s*([a-z])/g, function(d,e) { return ", "+e.toUpperCase() });
}

您可以测试逗号,如果它们存在,请在逗号上拆分。新数组的第一个索引之后的任何内容都将toUppercase应用于,然后重新连接逗号上的字符串,并用经过修改的字符串替换输入字段

function makeUppercase(field) {

   if(filed.value.indexOf(",") != -1)
   {
        var inputStr = field.value.split(",");
        for(var i = 1; i < inputStr.length; i++)
        {
            inputStr[i] = inputStr[i].toUpperCase();
        }
        field.value = inputStr.join(",");
   }
}
函数makeUppercase(字段){
if(field.value.indexOf(“,”)=-1)
{
var inputStr=field.value.split(“,”);
对于(变量i=1;i
我会在keydown=“”上加上什么来触发此函数?这实际上比看起来更复杂。如果您只是简单地执行类似于onkeydown=“this.value=makeUpperCaseAfterCommas(this.value)”的操作,它将“起作用”,但您可能会在输入字段中每按一次键后失去carret位置。处理这一部分比较复杂,但应该可以让您了解要采取的方法。此函数仅将逗号后的第一个字母大写,我需要它将逗号后的所有字母大写。有什么建议吗?哦,对不起。我看你的要求太快了。您可以将regexp调整为/,\s*(*)/。在第一次看到逗号后,它将完全抓住一切。如果您只想在每个逗号后大写一个单词,那么可以使用/,\s*([a-z][a-z]*)/g。