>

javascript를 사용하여 문자열에서 하이픈 후 첫 글자를 대문자로 쓰는 방법을 알고 싶습니다. 하이픈 str이 소문자로되어 있지 않은 경우

var result = capitalize("js-script");
function capitalize(str){
 return str.split("-")[1].charAt(0).toUpperCase()+ str.slice(1);
}

예상 출력 :

js-script => js-Script  
tom => tom

  • 답변 # 1

    대신 정규 표현식을 사용하여 고려- - 와 일치  알파벳 문자이며 - 로 대체하십시오.  그리고 그 단어 문자는 대문자로 표시됩니다 :

    const capitalize = (str) => str.replace(/-([a-z])/g, (_, char) => '-' + char.toUpperCase());
    console.log(capitalize("js-script"));
    console.log(capitalize("foo-bar-baz"));
    
    

    원래 코드를 수정하려면 - 가 하나만있을 경우  입력에서 - 이후 부분의 나머지 문자를 저장해야합니다.  ( charAt(0) 뿐만 아니라 ) :

    function capitalize(str) {
      if (!str.includes('-')) {
        return str;
      }
      const [before, after] = str.split("-");
      return before + '-' + after.charAt(0).toUpperCase() + after.slice(1);
    }
    console.log(capitalize('foo-bar'));
    console.log(capitalize('foo'));
    
    

  • 답변 # 2

    정규식을 사용하여 다음과 같이 할 수 있습니다.

    console.log(capitalize("js-script"));
    function capitalize(str){
     return str.replace(/(?<=-)\w/g, (text) => text.toUpperCase());
    }
    
    

  • 답변 # 3

    정규식을 사용하고 대체 방법을 사용할 수 있습니다

    -[a-z]

    -  -캐릭터 - 와 일치

    [a-z]  -a에서 z까지의 모든 문자와 일치

    function capitalize(str){
     return typeof str === 'string' ? str.replace(/-([a-z])/gi,(m,g1)=> `-${g1.toUpperCase()}`) : str
    }
    console.log(capitalize("js-script"))
    console.log( capitalize("tom"))
    
    

  • 답변 # 4

    이 작업을 수행 할 수 있습니다

    function capitalize(str){
      let arrSplit = str.split("-")
      let joinArray = [];
      for(var i=0;i<arrSplit.length;i++){
        if(i==0){
           joinArray.push(arrSplit[i]);
        }else{
          joinArray.push(arrSplit[i].charAt(0).toUpperCase()+arrSplit[i].slice(1));
        }
      }
     return joinArray.join("-",)
    }
    console.log(capitalize("js-script"))
    console.log(capitalize("js-script-again"))
    
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    
    

관련 자료

  • 이전 jenkins git 플러그인 - 특정 태그를 작성하는 방법?
  • 다음 javascript - 가장 가까운 tr에서 클래스 이름의 div에 jquery 응답을 할당하십시오