在用户提供的控件名称中创建初始大写

时间:2009-12-14 13:59:25

标签: javascript

我有一个名为MakeInitialCapital的函数。我想提供控件名作为参数,并且该控件中的文本必须转换为Initial Capital。

如何修改此Javascript代码:

function MakeInitialCapitalControl(controlName)
{
    TextInControl = getElementByID(controlName).value;  
    return str.toLowerCase().replace(/\b[a-z]/g, cnvrt);
function cnvrt() {
    return arguments[0].toUpperCase();
}

编辑:

还有一件事,如果文本已经有了Intials Capital,请将其设为小写。

1 个答案:

答案 0 :(得分:3)

假设您的其余代码有效,您需要分配值,而不是返回它:

function MakeInitialCapitalControl(controlName)
{
    var ctrl = getElementByID(controlName);
    ctrl.value = ctrl.value.toLowerCase().replace(/\b[a-z]/g, function {
        return arguments[0].toUpperCase();
    });
}

修改

至于编辑中的请求......这是一个相当奇怪的请求。你确定你想要同样的功能吗?它几乎与函数名称所暗示的完全相反。但是哦,好吧:

function MakeInitialCapitalControl(controlName)
{
    var ctrl = getElementByID(controlName);

    if(/^[A-Z]/.test(ctrl.value)) {
        ctrl.value = ctrl.value.toLowerCase();
        return;
    }        

    ctrl.value = ctrl.value.toLowerCase().replace(/\b[a-z]/g, function {
        return arguments[0].toUpperCase();
    });
}