我不能在JavaScript中使用大小写函数转换我的字符串

时间:2018-05-29 01:46:55

标签: javascript function

我试图创建一个函数,将我的字符串的第一个字母更改为大写字母,将其余字母更改为小写字母。我编写了以下代码,但在编译时没有更改字符串。我不知道我在这里做错了什么。有什么指针吗?!



var e1;

function capFirstLetter(myString) {        
  myString = (myString.substring(0,1)).toUpperCase();    
  myString = (myString.substring(1, myString.length)).toLowerCase();      
  return myString;
  
}

e1 = prompt("Please Enter Your First Name");    
capFirstLetter(e1);    
console.log("The result is: " + e1);




3 个答案:

答案 0 :(得分:1)

我很惊讶这些答案都没有使用.charAt(0).slice(1)。它更干净,并且需要更少的代码来完成OP所追求的目标。

var e1;

function capFirstLetter(myString) {        
  return myString.charAt(0).toUpperCase() + myString.slice(1).toLowerCase();
}

e1 = prompt("Please Enter Your First Name");    
e1 = capFirstLetter(e1);    
console.log("The result is: " + e1);

答案 1 :(得分:-1)

这里有一些错误。 将原始变量输入函数(即非对象)时,将复制变量而不是直接移动变量。这意味着函数内部的字符串myString与函数外部的字符串完全不同,并且更改不会反映在外部字符串中。

其次,你用第一个字符(大写)覆盖所述字符串,然后用剩余的字符再次覆盖它,这些字符不再存在!结果是你的函数返回空字符串""。

最后,你从函数中返回这个空字符串,但不要对它做任何事情。

可能你正试图这样做:



var e1;

function capFirstLetter(myString) {        
  first = (myString.substring(0,1)).toUpperCase();    
  rest = (myString.substring(1, myString.length)).toLowerCase();      
  return first + rest;
  
}

e1 = prompt("Please Enter Your First Name");    
e1 = capFirstLetter(e1);    
console.log("The result is: " + e1);




答案 2 :(得分:-1)

capFirstLetter(el)返回一个值。您正在调用该函数,但不捕获该返回值,而只是记录propmt的原始响应。

此外,除了函数中的第一个字母外,您将丢弃所有函数,因为您只需使用第一个字母立即覆盖输入参数。您需要第二个变量来存储它。

见内联评论:

var e1 = prompt("Please Enter Your First Name");

function capFirstLetter(myString) {     

  // This only returns the first letter of the string.
  // So, you don't want to overwrite the input because you'll lose the rest of the word
  var newString = myString.substring(0,1).toUpperCase(); 
  
  // Now, you have to concatenate the first letter (from above) with the rest
  myString = newString + myString.substring(1, myString.length).toLowerCase();      

  return myString;
}
  
var result = capFirstLetter(e1);    // Capture the function's return value
console.log("The result is: " + result);