2011-01-24 63 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(","); 
    } 
}