JS

[JavaScript] : tirm()

๊ถŒ์Šพํ–„ 2023. 7. 14. 21:01

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/trim

 

String.prototype.trim() - JavaScript | MDN

trim() ๋ฉ”์„œ๋“œ๋Š” ๋ฌธ์ž์—ด ์–‘ ๋์˜ ๊ณต๋ฐฑ์„ ์ œ๊ฑฐํ•˜๊ณ  ์›๋ณธ ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ๊ณต๋ฐฑ์ด๋ž€ ๋ชจ๋“  ๊ณต๋ฐฑ๋ฌธ์ž(space, tab, NBSP ๋“ฑ)์™€ ๋ชจ๋“  ๊ฐœํ–‰๋ฌธ์ž(LF, CR ๋“ฑ)๋ฅผ

developer.mozilla.org

๊ตฌํ˜„์‹œํ‚ค๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ

๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ์‹œ ์ œ๋ชฉ๊ณผ ๋‚ด์šฉ์— ์ž‘์„ฑ๋œ ๋ถ€๋ถ„์ด ์—†๋‹ค๋ฉด, ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  ์‹ถ๋‹ค.

์‹œ๋„ํ•ด ๋ณธ ๊ฒƒ
// ์ดˆ๊ธฐ์ฝ”๋“œ
    
    // ์ œ๋ชฉ์˜ ์ž…๋ ฅ๊ฐ’์ด ์—†์„ ๋•Œ,
    if (title === ' ' || title === undefined) {
        return res.status(412).json({ errorMessage: '๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ์˜ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.' });
    }
    // ๋‚ด์šฉ์˜ ์ž…๋ ฅ๊ฐ’์ด ์—†์„ ๋•Œ,
    if (content === ' ' || content === undefined) {
        return res.status(412).json({ errorMessage: '๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ์˜ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.' });
    }

์œ„ ์ฝ”๋“œ๋Š” ํ•˜๋‚˜์˜ ๊ณต๋ฐฑ์€ ์žก์•„๋‚ด์ง€๋งŒ 2๊ฐœ ์ด์ƒ์˜ ๊ณต๋ฐฑ์ผ ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ๋ชปํ•œ๋‹ค.

!title์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ด์œ 

!title์€ ๋‚ด๊ฐ€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ์›ํ•˜๋Š” ๋นˆ ๊ณต๋ฐฑ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด๊นŒ์ง€๋Š” ์žก์•„๋‚ด์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋‹ค.

console.log(Boolean('  ')); // true

function a(a, b) {
    if (' ' === '  ') {
        return a + b;
    } else {
        return 10;
    }
}
let b = a(1, 2);
console.log(b); // 10

์œ„์˜ ์ฝ”๋“œ์—์„œ ๋ณด๋Š”๊ฒƒ๊ณผ ๊ฐ™์ด ๋นˆ ๊ณต๋ฐฑ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์€ true ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

๊ทธ๋ ‡๋‹ค๋Š” ์ด์•ผ๊ธฐ๋Š” !title๋กœ๋Š” ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋กœ์ง์—์„œ ๊ฑธ๋Ÿฌ์ง€์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๊ทธ๋ฆฌ๊ณ  a๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ๋ณด๊ฒŒ๋˜๋ฉด, ๊ณต๋ฐฑ ํ•˜๋‚˜์™€ ๊ณต๋ฐฑ 2๊ฐœ๋Š” ์„œ๋กœ ๋‹ค๋ฆ„์„ ๋‚˜ํƒ€๋‚ด๊ณ  ์žˆ๋‹ค.
๊ทธ๋ ‡๊ธฐ์— ๊ณต๋ฐฑ์„ ํ•œ ๋ฒˆ์— ์žก์•„๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” includes๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–จ๊นŒ ์‹ถ์—ˆ๋‹ค.

includes ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ
// ์ˆ˜์ • ์ฝ”๋“œ

    // ์ œ๋ชฉ์˜ ์ž…๋ ฅ๊ฐ’์ด ์—†์„ ๋•Œ,
    if (!title || title.includes("  ")) {
        return res.status(412).json({ errorMessage: '๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ์˜ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.' });
    }
    // ๋‚ด์šฉ์˜ ์ž…๋ ฅ๊ฐ’์ด ์—†์„ ๋•Œ,
    if (!content || content.includes("  ")) {
        return res.status(412).json({ errorMessage: '๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ์˜ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.' });
    }

๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—” title์˜ ๊ฐ’์ด false์ด๊ฑฐ๋‚˜, ๋นˆ ๊ณต๋ฐฑ์„ 2๊ฐœ ์ด์ƒ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๋ฉด, ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋„๋ก includes ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์•˜๋‹ค.

๊ณต๋ฐฑ์„ 2๊ฐœ๋ถ€ํ„ฐ ํฌํ•จํ–ˆ์„ ์‹œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•œ ์ด์œ ๋Š”, ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ์ด๋‚˜ ๋‚ด์šฉ์— ๋„์–ด์“ฐ๊ธฐ๊ฐ€ ์กด์žฌํ•  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์ด ์ฝ”๋“œ๊ฐ€ ์ข‹์€ ์ฝ”๋“œ์ธ์ง€์— ๋Œ€ํ•œ ์˜๋ฌธ์ด ๋“ค์—ˆ๋‹ค.
๊ทธ๋ž˜์„œ ํ˜„์—…์—์„œ๋Š” ์–ด๋–ค์‹์œผ๋กœ ์ด ๋ถ€๋ถ„์„ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๋ฌผ์–ด๋ณด๊ณ  ๋‹ค์Œ ๋ฉ”์„œ๋“œ๋ฅผ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

trim()

trim์€ ๋ฌธ์ž์—ด์˜ ์–‘ ๋์— ์œ„์น˜ํ•œ ๊ณต๋ฐฑ๋“ค์„ ์—†์•ค "์ƒˆ๋กœ์šด" ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๊ทธ๋ ‡๋‹ค๋Š” ๊ฒƒ์€, ์•„๋ฌด๋ฆฌ ๋งŽ์€ ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•ด์„œ ์ œ๋ชฉ์œผ๋กœ ์ž‘์„ฑํ•˜๋“ , ์•„๋‹ˆ๋ฉด ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘๊ณผ ๋์— ์˜๋„์น˜ ์•Š์€ ๊ณต๋ฐฑ๋“ค์ด ๋“ค์–ด๊ฐ€๋”๋ผ๋„, trim ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ทธ ๊ณต๋ฐฑ์„ ์ œ์™ธํ•œ ์ž‘์„ฑ ๋‚ด์šฉ์˜ ์ œ๋ชฉ๊ณผ content๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค.

// trim ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ”๋“œ

    // ์ œ๋ชฉ์˜ ์ž…๋ ฅ๊ฐ’์ด ์—†์„ ๋•Œ,
    if (!title || !title.trim()) {
        return res.status(412).json({ errorMessage: '๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ์˜ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.' });
    }

    // ๋‚ด์šฉ์˜ ์ž…๋ ฅ๊ฐ’์ด ์—†์„ ๋•Œ,
    if (!content || !content.trim()) {
        return res.status(412).json({ errorMessage: '๊ฒŒ์‹œ๊ธ€ ๋‚ด์šฉ์˜ ํ˜•์‹์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.' });
    }

๊ทธ๋ฆฌ๊ณ  trim ์€ ์–‘์ชฝ์˜ ๊ณต๋ฐฑ์„ ๋‹ค ์—†์• ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฌธ์ž์—ด์˜ ์‹œ์ž‘ ๋˜๋Š” ๋ฌธ์ž์—ด์˜ ๋์— ์žˆ๋Š” ๊ณต๋ฐฑ๋งŒ ๋”ฐ๋กœ ์—†์•จ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ๊ฐ–์ถ”๊ณ  ์žˆ๋‹ค.

// ๋ฌธ์ž์—ด ์‹œ์ž‘์˜ ๊ณต๋ฐฑ๋“ค๋งŒ ์—†์• ์ฃผ๋Š” ๋ฉ”์„œ๋“œ
trimStart()

// ๋ฌธ์ž์—ด ๋์˜ ๊ณต๋ฐฑ๋“ค๋งŒ ์—†์• ์ฃผ๋Š” ๋ฉ”์„œ๋“œ
trimEnd()

์ด๋ ‡๊ฒŒ ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ trim๊ณผ includes๋ฅผ ์•Œ๋งž๊ฒŒ ์‚ฌ์šฉํ•ด๋ณด๋ฉด ๋ณด๋‹ค ๋งŽ์€ ๊ฑธ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค !!

https://github.com/Yooonzero/7-personal-assignment-create-backend-server-lv4

 

GitHub - Yooonzero/7-personal-assignment-create-backend-server-lv4: lv3 ๊ฐœ์ธ๊ณผ์ œ์— ์ข‹์•„์š” ๊ธฐ๋Šฅ๊ณผ ๋Œ“๊ธ€ ๊ธฐ๋Šฅ์„ ์ถ”

lv3 ๊ฐœ์ธ๊ณผ์ œ์— ์ข‹์•„์š” ๊ธฐ๋Šฅ๊ณผ ๋Œ“๊ธ€ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•œ ๋ฒ„์ ผ. Contribute to Yooonzero/7-personal-assignment-create-backend-server-lv4 development by creating an account on GitHub.

github.com

#์˜ˆ์™ธ์ฒ˜๋ฆฌ #includes #trim #๋นˆ๋ฌธ์ž์—ด