lodash 문서 및 기타 Stack Overflow 질문을 살펴보고 있습니다. 이 작업을 수행하는 몇 가지 기본 JavaScript 방법 이 있지만 순수하게 lodash 함수 (또는 최소한 기존 프로토 타입 함수)를 사용하여 문자열을 제목 케이스로 변환 할 수있는 방법이 있습니까? 정규식을 사용하거나 새 함수를 정의 할 필요가 없도록?
예 :
This string ShouLD be ALL in title CASe
되어야한다
This String Should Be All In Title Case
답변
답변
_.startCase(_.camelCase(str))
사용자가 생성하지 않은 텍스트의 경우 허용 된 답변보다 더 많은 케이스를 처리합니다.
> startCase(camelCase('myString'))
'My String'
> startCase(camelCase('my_string'))
'My String'
> startCase(camelCase('MY_STRING'))
'My String'
> startCase(camelCase('my string'))
'My String'
> startCase(camelCase('My string'))
'My String'
답변
lodash 버전 4.
_.upperFirst(_.toLower(str))
답변
'This string ShouLD be ALL in title CASe'
.split(' ')
.map(_.capitalize)
.join(' ');
답변
이 질문에 대한 대답은 엇갈립니다. 일부는 사용 _.upperFirst
을 권장 하고 일부는 _.startCase
.
그들 사이의 차이점을 아십시오.
i) _.upperFirst
문자열의 첫 문자를 변환 한 다음 문자열은 단일 단어 또는 여러 단어로 구성 될 수 있지만 문자열의 첫 번째 문자 만 대문자로 변환됩니다.
_.upperFirst('jon doe')
산출:
Jon doe
https://lodash.com/docs/4.17.10#upperFirst 문서를 확인 하십시오.
ii) _.startCase
문자열 안에있는 모든 단어의 첫 글자를 변환합니다.
_.startCase('jon doe')
산출:
Jon Doe
답변
다음은 lodash 메서드 만 사용하고 내장 메서드는 사용하지 않는 방법입니다.
_.reduce(_.map(_.split("Hello everyOne IN the WOrld", " "), _.capitalize), (a, b) => a + " " + b)
답변
const titleCase = str =>
str
.split(' ')
.map(str => {
const word = str.toLowerCase()
return word.charAt(0).toUpperCase() + word.slice(1)
})
.join(' ')
지도 기능을 분리하여 별도의 단어를 수행 할 수도 있습니다.