-
Notifications
You must be signed in to change notification settings - Fork 94
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: 문자열에서 한글만 반환하는 extractHangul을 구현합니다. #130
Conversation
🦋 Changeset detectedLatest commit: f8ef0b9 The changes in this PR will be included in the next version bump. Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
src/parseHangul.ts
Outdated
* parseHangul('가나다!-29~라마바.,,사') // '가나다라마바사' | ||
*/ | ||
|
||
export function parseHangul(str: string): string { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@okinawaa #121 이름짓기 이슈가 해결되고 승인되면 좋겠습니다
@Collection50 같이 이슈 봐주시면 좋겠어요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
네 맞아요 ~Hangul을 사용할 것인지 말것인지에 대한 의견이 필요해요
이 함수 명칭은 removeUnHangul 같은 지운다는 뜻을 포함했으면 좋겠습니다. 정규식에서 + 는 큰 단위의 반복을 줄여 성능을 높이는 효과가 있습니다. ps. 저 식대로면 ㅠㅠ 같은 문자도 지워지는데 함수의 역할이 무엇인가요? |
이 부분에 동의하여, 한글을 지운다는 맥락을 설명할 수 있는 함수명, 혹은 주석에 "한글을 추출" 한다고 작성해주신것을 따라 |
이 부분은 현재 구현대로 띄어쓰기는 삭제하지 않는 것이 좋을 것 같아요~ 라이브러리를 사용하는쪽에서 정말 띄어쓰기를 삭제하고 싶으면 사용하는 쪽에서 제어할 것 이라고 생각해요 |
@crucifyer 피드백 해주셔서 감사합니다 ! |
테스트 코드 보완과 함께 수정 완료 했습니다 ! |
src/extractHangul.spec.ts
Outdated
@@ -0,0 +1,51 @@ | |||
import { extractHangul } from './extractHangul'; | |||
|
|||
describe('extractHangul 함수 테스트', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
일관성을 유지하기 위해서 , 함수 테스트 글자를 지우는것은 어떨까요?
describe('extractHangul 함수 테스트', () => { | |
describe('extractHangul', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵 !
src/extractHangul.spec.ts
Outdated
it('숫자와 알파벳 추출', () => { | ||
expect(extractHangul('안녕하세요1234abc!@#')).toBe('안녕하세요'); | ||
}); | ||
|
||
it('한글이 없는 문자열', () => { | ||
expect(extractHangul('1234abc')).toBe(''); | ||
}); | ||
|
||
it('한글과 공백만 남기고 다른 문자는 추출', () => { | ||
expect(extractHangul('한글과 영어가 섞인 문장입니다. Hello!')).toBe('한글과 영어가 섞인 문장입니다 '); | ||
}); | ||
|
||
it('특수문자 추출', () => { | ||
expect(extractHangul('특수문자!@#가 들어간 경우')).toBe('특수문자가 들어간 경우'); | ||
}); | ||
|
||
it('숫자와 특수문자 추출', () => { | ||
expect(extractHangul('숫자1234와 특수문자!@# 추출')).toBe('숫자와 특수문자 추출'); | ||
}); | ||
|
||
it('공백 유지', () => { | ||
expect(extractHangul('공백도 유지됩니다 이렇게')).toBe('공백도 유지됩니다 이렇게'); | ||
}); | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
추후 다른 PR에서 작업되도 좋겠습니다,
현재 it구문이 너무 병렬적으로 나와있으니 인지적으로 힘든 것 같아요.
비슷한 맥락인 것들은 describe 메서드를 사용해 한번 grouping해주면 좋을 것 같아요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
넵 추가적인 PR 만들겠습니다 !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
extractHangul에 대한 문서 작업도 진행해주시면 감사하겠습니다.
API가 실제로 추가되는것이기때문에 문서에서도 표현되었으면 좋겠어요!
src/extractHangul.spec.ts
Outdated
import { extractHangul } from './extractHangul'; | ||
|
||
describe('extractHangul', () => { | ||
it('숫자와 알파벳 추출', () => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
숫자
it('숫자와 알파벳 추출', () => { | |
it('숫자와 알파벳과 특수문자를 제외한 한글 추출', () => { |
src/extractHangul.spec.ts
Outdated
|
||
it('한글과 공백만 남기고 다른 문자는 추출', () => { | ||
expect(extractHangul('한글과 영어가 섞인 문장입니다. Hello!')).toBe('한글과 영어가 섞인 문장입니다 '); | ||
}); | ||
|
||
it('특수문자 추출', () => { | ||
expect(extractHangul('특수문자!@#가 들어간 경우')).toBe('특수문자가 들어간 경우'); | ||
}); | ||
|
||
it('숫자와 특수문자 추출', () => { | ||
expect(extractHangul('숫자1234와 특수문자!@# 추출')).toBe('숫자와 특수문자 추출'); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
한글을 추출하여, return값으로 주는것이기때문에
한글을 추출
하고, 다른건 제외
한다는 표현을 사용하면 좋을 것 같아요
@okinawaa |
* extractHangul('가나다!-29~라마바.,,사') // '가나다라마바사' | ||
*/ | ||
|
||
export function extractHangul(str: string): string { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
실제 사용할 수 있도록 src/index.ts에서 export 해주시면 좋을 것 같아요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
완료했습니다 ! 감사합니다 !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
긴 작업 감사합니다!
* feat: parseHangul * fix: parseHangul의 이름을 extractHangul로 수정 및 테스트 코드 보완 * test: 일관된 테스트 코드 작성이 될 수 있도록 describe 설명 수정 * test: 테스트 코드 수정 * docs: extractHangul의 문서 작성 * test: 테스트 문구 수정 * fix: index.ts에 export 추가 * Create fresh-students-sit.md --------- Co-authored-by: 박찬혁 <[email protected]>
* fix. 겹모음과 관련된 이상 현상들 수정 * fix. fix index * fix. 오타 수정 Co-authored-by: 박찬혁 <[email protected]> * fix. 오타 수정 Co-authored-by: 박찬혁 <[email protected]> * fix. 업데이트 로직 반영 * test: internal 테스트 코드를 작성합니다 (#137) * test: internal 테스트 코드를 작성합니다 * test: vitest에서 제공해주는 toThrowError로 변경 --------- Co-authored-by: 박찬혁 <[email protected]> * docs: josa에 관련된 문서에 잘못된 부분을 수정합니다 - '이에/에' 삭제 Co-authored-by: 박찬혁 <[email protected]> * chore: version packages (#143) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * feat: 한글 문자열에 대한 검증, assert, parsing 함수를 구현합니다. (#136) * feat: 한글 문자열인지 boolean 반환 함수 * feat: 한글 문자열인지 assert 함수 * feat: stringify * test: isHangulString, assertHangulString 테스트 코드 * feat: parse 함수 * test: parse 함수 테스트 * refactor: naming 통일 * feat : 문장의 각 단어 중 첫 문자만 뽑는 함수추가 ( #128 이슈에 대한 ) (#133) * feat : 문장의 각 단어 중 첫 문자만 뽑는 함수추가 * test 및 함수 추가 * add : 한글 문장인지 여부 판별 함수 추가 * fix : 한글 문장인지 여부 판별 기저 및 오류 추가 / arg 이름 변경 test 추가 * fix: src/_internal/hangul.ts Co-authored-by: 박찬혁 <[email protected]> * fix : rename function getFirstHangulLetters -> getHangulAcronym * fix : rename function export function isHangulOnly로 변경 * fix : lint error * fix : index에 추가 * chore : doc 추가 * fix : 문서화 한글 영어 바뀐거 바로 변경 * fix : isHangul로 대체 #136 으로 * chore : doc수정 * Update docs/src/pages/docs/api/getHangulAcronym.en.mdx Co-authored-by: 박찬혁 <[email protected]> * fix : Update hangul.ts 안쓰는 메소드 삭제 * Update getHangulAcronym.ko.mdx * Update getHangulAcronym.en.mdx * Update src/getHangulAcronym.ts Co-authored-by: 박찬혁 <[email protected]> * Update src/getHangulAcronym.ts Co-authored-by: 박찬혁 <[email protected]> * Update getHangulAcronym.ts * Update getHangulAcronym.spec.ts * Create fair-brooms-drive.md --------- Co-authored-by: 박찬혁 <[email protected]> * chore: version packages (#145) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * feat: 문자열에서 한글만 반환하는 extractHangul을 구현합니다. (#130) * feat: parseHangul * fix: parseHangul의 이름을 extractHangul로 수정 및 테스트 코드 보완 * test: 일관된 테스트 코드 작성이 될 수 있도록 describe 설명 수정 * test: 테스트 코드 수정 * docs: extractHangul의 문서 작성 * test: 테스트 문구 수정 * fix: index.ts에 export 추가 * Create fresh-students-sit.md --------- Co-authored-by: 박찬혁 <[email protected]> * chore: version packages (#146) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix : getHangulacronym함수를 acronymizeHangul 메서드로 대체합니다. (#148) * Update and rename getHangulAcronym.ts to acronymizeHangul.ts * Update and rename getHangulAcronym.spec.ts to acronymizeHangul.spec.ts * Update index.ts * Update and rename getHangulAcronym.en.mdx to acronymizeHangul.en.mdx * Update and rename getHangulAcronym.ko.mdx to acronymizeHangul.ko.mdx * Create odd-squids-sin.md --------- Co-authored-by: 박찬혁 <[email protected]> * chore: version packages (#150) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: amountToHangul이 소수점, 숫자도 대응할 수 있도록 수정 (#144) * fix: amountToHangul이 소수점, 숫자도 대응할 수 있도록 수정 * docs: amountToHangul의 영어 문서 작성 * Create famous-cheetahs-sneeze.md * Update famous-cheetahs-sneeze.md --------- Co-authored-by: 박찬혁 <[email protected]> * fix: packlint ESLint error (#149) * test: utils 기능들의 테스트 케이스를 개선합니다 (#151) * test: hasBatchim 함수의 테스트 케이스를 추가합니다 * test: hasSingleBatchim의 테스트 케이스를 추가합니다 * fix: nextra theme asset 개선 (#152) * chore: version packages (#153) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: 패키지가 노출하는 인터페이스를 명확히 하기 위해 index.ts를 named export로 수정합니다 (#157) * fix: exposing public apis strictly * Create wild-cows-juggle.md * chore: version packages (#160) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * docs: CONTRIBUTING.md 파일에 메서드 컨벤션을 작성합니다. (#132) * Update CONTRIBUTING.md * fix * write contribution.md Co-authored-by: Jonghyeon Ko <[email protected]> Co-authored-by: Dongkyu Kim <[email protected]> * Update .github/CONTRIBUTING.md Co-authored-by: Jonghyeon Ko <[email protected]> * Update .github/CONTRIBUTING.md Co-authored-by: Jonghyeon Ko <[email protected]> * Update .github/CONTRIBUTING.md Co-authored-by: Jonghyeon Ko <[email protected]> --------- Co-authored-by: Jonghyeon Ko <[email protected]> Co-authored-by: Dongkyu Kim <[email protected]> Co-authored-by: Jonghyeon Ko <[email protected]> * test: amountToHangul 테스트 추가 (#135) * test: amountToHangul 테스트 추가 * test: amountToHangul 테스트 코드 수정 * test: amountToHangul 테스트 코드 스타일 변경 * test: amountToHangul test 개선 * fix: assert.throws대신 vitest toThrow로 메서드 변경 * fix: vitest toThrowError 메서드로 변경 --------- Co-authored-by: kinndohyun <[email protected]> Co-authored-by: 박찬혁 <[email protected]> * fix: 소수점 추가 후 발생한 '영'읽기 버그 수정 (#159) * fix: 소수점 추가 후 발생한 '영'읽기 버그 수정 * Create big-cups-call.md --------- Co-authored-by: 박찬혁 <[email protected]> * docs: acronymizeHangul 리턴 타입 표기 수정 (#161) * chore: version packages (#163) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: 일관된 toThrowError 메서드 사용 (#166) Co-authored-by: kinndohyun <[email protected]> * chore(eslint): 의도치 않은 naming을 제거하기 위해 cspell 추가 (#164) * chore(eslint): add cspell to check bad naming * chore: update * Create grumpy-singers-love.md --------- Co-authored-by: 박찬혁 <[email protected]> Co-authored-by: Dongkyu Kim <[email protected]> Co-authored-by: Jaemin Kim <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: seunghee <[email protected]> Co-authored-by: taehyun <[email protected]> Co-authored-by: SeongMin Kim <[email protected]> Co-authored-by: Jonghyeon Ko <[email protected]> Co-authored-by: Jonghyeon Ko <[email protected]> Co-authored-by: Dongkyu Kim <[email protected]> Co-authored-by: 김도현 <[email protected]> Co-authored-by: kinndohyun <[email protected]> Co-authored-by: Song Hyo Jin <[email protected]> Co-authored-by: wnhlee <[email protected]>
* fix. 겹모음과 관련된 이상 현상들 수정 * fix. fix index * fix. 오타 수정 Co-authored-by: 박찬혁 <[email protected]> * fix. 오타 수정 Co-authored-by: 박찬혁 <[email protected]> * fix. 업데이트 로직 반영 * test: internal 테스트 코드를 작성합니다 (#137) * test: internal 테스트 코드를 작성합니다 * test: vitest에서 제공해주는 toThrowError로 변경 --------- Co-authored-by: 박찬혁 <[email protected]> * docs: josa에 관련된 문서에 잘못된 부분을 수정합니다 - '이에/에' 삭제 Co-authored-by: 박찬혁 <[email protected]> * chore: version packages (#143) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * feat: 한글 문자열에 대한 검증, assert, parsing 함수를 구현합니다. (#136) * feat: 한글 문자열인지 boolean 반환 함수 * feat: 한글 문자열인지 assert 함수 * feat: stringify * test: isHangulString, assertHangulString 테스트 코드 * feat: parse 함수 * test: parse 함수 테스트 * refactor: naming 통일 * feat : 문장의 각 단어 중 첫 문자만 뽑는 함수추가 ( #128 이슈에 대한 ) (#133) * feat : 문장의 각 단어 중 첫 문자만 뽑는 함수추가 * test 및 함수 추가 * add : 한글 문장인지 여부 판별 함수 추가 * fix : 한글 문장인지 여부 판별 기저 및 오류 추가 / arg 이름 변경 test 추가 * fix: src/_internal/hangul.ts Co-authored-by: 박찬혁 <[email protected]> * fix : rename function getFirstHangulLetters -> getHangulAcronym * fix : rename function export function isHangulOnly로 변경 * fix : lint error * fix : index에 추가 * chore : doc 추가 * fix : 문서화 한글 영어 바뀐거 바로 변경 * fix : isHangul로 대체 #136 으로 * chore : doc수정 * Update docs/src/pages/docs/api/getHangulAcronym.en.mdx Co-authored-by: 박찬혁 <[email protected]> * fix : Update hangul.ts 안쓰는 메소드 삭제 * Update getHangulAcronym.ko.mdx * Update getHangulAcronym.en.mdx * Update src/getHangulAcronym.ts Co-authored-by: 박찬혁 <[email protected]> * Update src/getHangulAcronym.ts Co-authored-by: 박찬혁 <[email protected]> * Update getHangulAcronym.ts * Update getHangulAcronym.spec.ts * Create fair-brooms-drive.md --------- Co-authored-by: 박찬혁 <[email protected]> * chore: version packages (#145) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * feat: 문자열에서 한글만 반환하는 extractHangul을 구현합니다. (#130) * feat: parseHangul * fix: parseHangul의 이름을 extractHangul로 수정 및 테스트 코드 보완 * test: 일관된 테스트 코드 작성이 될 수 있도록 describe 설명 수정 * test: 테스트 코드 수정 * docs: extractHangul의 문서 작성 * test: 테스트 문구 수정 * fix: index.ts에 export 추가 * Create fresh-students-sit.md --------- Co-authored-by: 박찬혁 <[email protected]> * chore: version packages (#146) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix : getHangulacronym함수를 acronymizeHangul 메서드로 대체합니다. (#148) * Update and rename getHangulAcronym.ts to acronymizeHangul.ts * Update and rename getHangulAcronym.spec.ts to acronymizeHangul.spec.ts * Update index.ts * Update and rename getHangulAcronym.en.mdx to acronymizeHangul.en.mdx * Update and rename getHangulAcronym.ko.mdx to acronymizeHangul.ko.mdx * Create odd-squids-sin.md --------- Co-authored-by: 박찬혁 <[email protected]> * chore: version packages (#150) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: amountToHangul이 소수점, 숫자도 대응할 수 있도록 수정 (#144) * fix: amountToHangul이 소수점, 숫자도 대응할 수 있도록 수정 * docs: amountToHangul의 영어 문서 작성 * Create famous-cheetahs-sneeze.md * Update famous-cheetahs-sneeze.md --------- Co-authored-by: 박찬혁 <[email protected]> * fix: packlint ESLint error (#149) * test: utils 기능들의 테스트 케이스를 개선합니다 (#151) * test: hasBatchim 함수의 테스트 케이스를 추가합니다 * test: hasSingleBatchim의 테스트 케이스를 추가합니다 * fix: nextra theme asset 개선 (#152) * chore: version packages (#153) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: 패키지가 노출하는 인터페이스를 명확히 하기 위해 index.ts를 named export로 수정합니다 (#157) * fix: exposing public apis strictly * Create wild-cows-juggle.md * chore: version packages (#160) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * docs: CONTRIBUTING.md 파일에 메서드 컨벤션을 작성합니다. (#132) * Update CONTRIBUTING.md * fix * write contribution.md Co-authored-by: Jonghyeon Ko <[email protected]> Co-authored-by: Dongkyu Kim <[email protected]> * Update .github/CONTRIBUTING.md Co-authored-by: Jonghyeon Ko <[email protected]> * Update .github/CONTRIBUTING.md Co-authored-by: Jonghyeon Ko <[email protected]> * Update .github/CONTRIBUTING.md Co-authored-by: Jonghyeon Ko <[email protected]> --------- Co-authored-by: Jonghyeon Ko <[email protected]> Co-authored-by: Dongkyu Kim <[email protected]> Co-authored-by: Jonghyeon Ko <[email protected]> * test: amountToHangul 테스트 추가 (#135) * test: amountToHangul 테스트 추가 * test: amountToHangul 테스트 코드 수정 * test: amountToHangul 테스트 코드 스타일 변경 * test: amountToHangul test 개선 * fix: assert.throws대신 vitest toThrow로 메서드 변경 * fix: vitest toThrowError 메서드로 변경 --------- Co-authored-by: kinndohyun <[email protected]> Co-authored-by: 박찬혁 <[email protected]> * fix: 소수점 추가 후 발생한 '영'읽기 버그 수정 (#159) * fix: 소수점 추가 후 발생한 '영'읽기 버그 수정 * Create big-cups-call.md --------- Co-authored-by: 박찬혁 <[email protected]> * docs: acronymizeHangul 리턴 타입 표기 수정 (#161) * chore: version packages (#163) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix: 일관된 toThrowError 메서드 사용 (#166) Co-authored-by: kinndohyun <[email protected]> * chore(eslint): 의도치 않은 naming을 제거하기 위해 cspell 추가 (#164) * chore(eslint): add cspell to check bad naming * chore: update * Create grumpy-singers-love.md --------- Co-authored-by: 박찬혁 <[email protected]> Co-authored-by: Dongkyu Kim <[email protected]> Co-authored-by: Jaemin Kim <[email protected]> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: seunghee <[email protected]> Co-authored-by: taehyun <[email protected]> Co-authored-by: SeongMin Kim <[email protected]> Co-authored-by: Jonghyeon Ko <[email protected]> Co-authored-by: Jonghyeon Ko <[email protected]> Co-authored-by: Dongkyu Kim <[email protected]> Co-authored-by: 김도현 <[email protected]> Co-authored-by: kinndohyun <[email protected]> Co-authored-by: Song Hyo Jin <[email protected]> Co-authored-by: wnhlee <[email protected]>
Overview
문자열에서 한글만 반환하는
extractHangul
을 구현합니다. #108고민점
\s
정규표현식을 통해\n
과 같은escape
문자열은 한글로 인식되어 처리하고 있습니다.escape
문자열도 필터링할 지에 대해 고민 후, 한글과 혼용되어 사용될 것이라 생각하고 필터링하지 않았습니다.PR Checklist