我有一个名为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,请将其设为小写。
答案 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();
});
}