File tree Expand file tree Collapse file tree 2 files changed +79
-0
lines changed
Expand file tree Collapse file tree 2 files changed +79
-0
lines changed Original file line number Diff line number Diff line change 11export function capitalizeFirstLetter ( text : string ) : string {
22 return text . charAt ( 0 ) . toUpperCase ( ) + text . slice ( 1 ) ;
33}
4+
5+ /**
6+ * Escape non-visible Variation Selectors characters in string.
7+ * Converts them into their Unicode escape sequences for explicit visibility.
8+ */
9+ export function escapeInvisibleCharacters ( input : string ) : string {
10+ return input . replace (
11+ / [ \uFE00 - \uFE0F ] / g, // Matches Variation Selectors
12+ ( char ) => `\\u${ char . charCodeAt ( 0 ) . toString ( 16 ) . padStart ( 4 , '0' ) } ` ,
13+ ) ;
14+ }
Original file line number Diff line number Diff line change 1+ import { escapeInvisibleCharacters } from '../../src/lib/StringHelpers' ;
2+
3+ describe ( 'StringHelpers' , ( ) => {
4+ it ( 'escapeInvisibleCharacters' , ( ) => {
5+ const value = `
6+ // Variation Selectors
7+ ⛔\uFE00 // VS1
8+ ⛔\uFE01 // VS2
9+ ⛔\uFE02 // VS3
10+ ⛔\uFE03 // VS4
11+ ⛔\uFE04 // VS5
12+ ⛔\uFE05 // VS6
13+ ⛔\uFE06 // VS7
14+ ⛔\uFE07 // VS8
15+ ⛔\uFE08 // VS9
16+ ⛔\uFE09 // VS10
17+ ⛔\uFE0A // VS11
18+ ⛔\uFE0B // VS12
19+ ⛔\uFE0C // VS13
20+ ⛔\uFE0D // VS14
21+ ⛔\uFE0E // VS15
22+ ⛔\uFE0F // VS16
23+ ` ;
24+ expect ( value ) . toMatchInlineSnapshot ( `
25+ "
26+ // Variation Selectors
27+ ⛔︀ // VS1
28+ ⛔︁ // VS2
29+ ⛔︂ // VS3
30+ ⛔︃ // VS4
31+ ⛔︄ // VS5
32+ ⛔︅ // VS6
33+ ⛔︆ // VS7
34+ ⛔︇ // VS8
35+ ⛔︈ // VS9
36+ ⛔︉ // VS10
37+ ⛔︊ // VS11
38+ ⛔︋ // VS12
39+ ⛔︌ // VS13
40+ ⛔︍ // VS14
41+ ⛔︎ // VS15
42+ ⛔️ // VS16
43+ "
44+ ` ) ;
45+
46+ expect ( escapeInvisibleCharacters ( value ) ) . toMatchInlineSnapshot ( `
47+ "
48+ // Variation Selectors
49+ ⛔\\ufe00 // VS1
50+ ⛔\\ufe01 // VS2
51+ ⛔\\ufe02 // VS3
52+ ⛔\\ufe03 // VS4
53+ ⛔\\ufe04 // VS5
54+ ⛔\\ufe05 // VS6
55+ ⛔\\ufe06 // VS7
56+ ⛔\\ufe07 // VS8
57+ ⛔\\ufe08 // VS9
58+ ⛔\\ufe09 // VS10
59+ ⛔\\ufe0a // VS11
60+ ⛔\\ufe0b // VS12
61+ ⛔\\ufe0c // VS13
62+ ⛔\\ufe0d // VS14
63+ ⛔\\ufe0e // VS15
64+ ⛔\\ufe0f // VS16
65+ "
66+ ` ) ;
67+ } ) ;
68+ } ) ;
You can’t perform that action at this time.
0 commit comments