[javascript] Lodash의 인코딩 및 디코딩 함수들과 사용 예제

Lodash는 자바스크립트 유틸리티 라이브러리로, 다양한 기능을 제공합니다. 그 중에서도 인코딩 및 디코딩과 관련된 함수들은 유용하게 사용될 수 있습니다. 이번 글에서는 Lodash에서 제공하는 인코딩 및 디코딩 함수들과 사용 예제에 대해 알아보겠습니다.

1. Lodash의 인코딩 및 디코딩 함수

1.1. _.escape(string)

_.escape() 함수는 주어진 문자열을 HTML 특수 문자로 변환하여 반환합니다. 예를 들어, < 문자는 &lt;로, > 문자는 &gt;로 변환됩니다.

const escapedString = _.escape('<div>Hello World</div>');
console.log(escapedString);
// 출력: '&lt;div&gt;Hello World&lt;/div&gt;'

1.2. _.unescape(string)

_.unescape() 함수는 HTML 특수 문자로 이루어진 문자열을 원래 문자열로 변환하여 반환합니다. 예를 들어, &lt;<로, &gt;>로 변환됩니다.

const unescapedString = _.unescape('&lt;div&gt;Hello World&lt;/div&gt;');
console.log(unescapedString);
// 출력: '<div>Hello World</div>'

1.3. _.escapeRegExp(string)

_.escapeRegExp() 함수는 정규식 패턴에서 사용되는 특수 문자들을 이스케이프하여 반환합니다. 예를 들어, .\.으로, *\*으로 변환됩니다.

const escapedRegExp = _.escapeRegExp('.*');
console.log(escapedRegExp);
// 출력: '\.\*'

2. Lodash의 인코딩 및 디코딩 함수 예제

2.1. 태그 문자열 이스케이프하기

다음 예제는 사용자로부터 입력받은 문자열을 HTML 태그로 출력하기 전에 인코딩하여 보안 문제를 방지하는 예제입니다.

const userInput = '<script>alert("Hello World");</script>';
const escapedInput = _.escape(userInput);
console.log(escapedInput);
// 출력: '&lt;script&gt;alert("Hello World");&lt;/script&gt;'

2.2. URL 인코딩하기

다음 예제는 사용자로부터 입력받은 URL을 인코딩한 후, HTTP 요청을 보낼 때 사용하는 예제입니다.

const userInput = 'https://www.example.com/?q=자바스크립트';
const encodedInput = encodeURIComponent(userInput);
console.log(encodedInput);
// 출력: 'https%3A%2F%2Fwww.example.com%2F%3Fq%3D%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8'

2.3. 정규식 패턴 생성하기

다음 예제는 사용자로부터 입력받은 문자열을 정규식 패턴으로 사용하기 전에 이스케이프하는 예제입니다.

const userInput = 'Hello World. How are you?';
const escapedRegExp = _.escapeRegExp(userInput);
const regexPattern = new RegExp(escapedRegExp, 'gi');
console.log(regexPattern);
// 출력: /Hello\ World\.\ How\ are\ you\?/gi

참고자료