maccounter

Форк
0
/
stringParser.ts 
46 строк · 1.2 Кб
1
import { space } from '@assets/symbols'
2

3
type StringParser = string | undefined
4

5
export const htmlStringParser = (strToDecode: string): StringParser => {
6
    const decodedStr = new DOMParser()
7
        .parseFromString(
8
            `<!doctype html><body>${strToDecode}`,
9
            'text/html',
10
        )
11
        .body
12
        .textContent
13
    return decodedStr ?? undefined
14
}
15

16
export const phoneParser = (phoneToParse: string): StringParser => {
17
    const regExp = /(\+\d)(\d{3})(\d{3})(\d{2})(\d{2})$/s
18
    const match = phoneToParse.match(regExp)
19

20
    if (!match || !match[0]) {
21
        return undefined
22
    }
23
    match.shift()
24

25
    return match.join(space)
26
}
27

28
export const getFirstLetters = (strToDecode: string, join?: string | boolean): StringParser | Array<string> => {
29
    const regExp = /\b[A-Z]|(?<=^|\s)[А-ЯЁ]/gu
30
    const match = strToDecode.match(regExp)
31

32
    if (!match) { return undefined }
33

34
    if (join === true) {
35
        return match.join('')
36
    }
37
    if (join) {
38
        return match.join(join)
39
    }
40
    return match
41
}
42

43
export const nameParser = (firstName: string, secondName: string): StringParser => {
44
    const initials = getFirstLetters(`${firstName} ${secondName}`, true)
45
    return typeof initials === 'string' ? initials : initials?.join('')
46
}
47

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.