2011-01-24 64 views
0

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

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

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

但我不知道怎么说做这个功能只有在一个逗号是存在的。

回答

0

我想这样做是做一个测试的一种方法:

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

正则表达式是好之类的东西。像

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

什么我会把onkeydown =“”来触发这个函数? – Mike 2011-01-24 20:29:33

0

你可以测试逗号,如果它们存在逗号分割。新数组的第一个索引之后的任何内容都会将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(","); 
    } 
}