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