문자열 다루기

문제

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 “a234”이면 False를 리턴하고 “1234”라면 True를 리턴하면 됩니다.

제한조건

  • s는 길이 1 이상, 길이 8 이하인 문자열입니다.

풀이방향

  • 입력 문자열의 길이가 4, 6 인지 확인
  • 입력 문자열이 숫자로 구성되었는지 확인

문제풀이

handlingString.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function handlingString(s) {
let answer = true;
//문자열의 길이가 4, 6 이 아닌지 확인
if (s.length !== 4 && s.length !== 6) {
answer = false;
}
//문자가 숫자로만 구성되어있는지 확인
for (let i = 0; i < s.length; i++) {
if (s[i] < "0" || s[i] > "9") {
answer = false;
}
}
return answer;
}

export { handlingString };
handlingString.test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { handlingString } from "../src/handlingString";

describe("handlingString", () => {
it("should return false if the length of the string is not 4 or 6", () => {
expect(handlingString("Jane")).toBe(false);
expect(handlingString("JaneKim")).toBe(false);
});

it("should return false if the string contains non-numeric characters", () => {
expect(handlingString("Jan123")).toBe(false);
expect(handlingString("J123")).toBe(false);
});

it("should return true if the string is composed of numeric characters", () => {
expect(handlingString("1234")).toBe(true);
expect(handlingString("123456")).toBe(true);
});
});

문제출처

  • 프로그래머스

다른 풀이

1
2
3
4
function alpha_string46(s){
var regex = /^\d{6}$|^\d{4}$/;
return regex.test(s);
}