File tree 1 file changed +31
-13
lines changed
1 file changed +31
-13
lines changed Original file line number Diff line number Diff line change @@ -41,32 +41,50 @@ function escapeRegExp(string) {
41
41
42
42
43
43
const regexIgnoreDiacritics = ( ( ) => {
44
- const characterGroups = [
45
- [ '[aàáâǎäãåā]' ] ,
46
- [ '[eèéêëēėę]' ] ,
47
- [ '[iîïíīįì]' ] ,
48
- [ '[oôöòóøōõ]' ] ,
49
- [ '[uûüùúū]' ] ,
50
- [ '[yÿ]' ] ,
51
- [ '[sśš]' ] ,
44
+ const baseCharacterGroups = [
45
+ [ '[aàáâǎäãåāăạả]' ] ,
46
+ [ '[cçćčɔ́ĉƈ]' ] ,
47
+ [ '[eèéêëēėęĕẹẻếềể]' ] ,
48
+ [ '[iîïíīįìĩỉĭịỉ]' ] ,
49
+ [ '[nñńʼnňŋňņṅñ]' ] ,
50
+ [ '[oôöòóøōõơồổỗộơớờở]' ] ,
51
+ [ '[sśşšșṡŝ]' ] ,
52
+ [ '[uûüùúūưũŭůųủǖǘǚ]' ] ,
53
+ [ '[yÿŷýỳỷ]' ] ,
52
54
[ '[zžźż]' ] ,
53
- [ '[cçćč]' ] ,
54
- [ '[nñń]' ] ,
55
55
] ;
56
56
57
- const allCharacters = new RegExp ( characterGroups . map ( group => group [ 0 ] ) . join ( '|' ) , 'gi' ) ;
57
+ const extendedCharacterGroups = [
58
+ [ '[bḃḅ]' ] ,
59
+ [ '[dďḋḍđδð]' ] ,
60
+ [ '[fḟƒ]' ] ,
61
+ [ '[gğģǧġĝǥ]' ] ,
62
+ [ '[hḣĥħḫ"]' ] ,
63
+ [ '[jĵȷǰ]' ] ,
64
+ [ '[kķǩƙ]' ] ,
65
+ [ '[lļľłĺļľł₺]' ] ,
66
+ [ '[mṁṃ]' ] ,
67
+ [ '[pṗ]' ] ,
68
+ [ '[rŕřṙ]' ] ,
69
+ [ '[tţťțṫŧťṯ]' ] ,
70
+ [ '[wẇŵ]' ] ,
71
+ [ '[xẋ]' ] ,
72
+ ] . concat ( baseCharacterGroups ) ;
73
+
74
+ const allCharacters = new RegExp ( '[' + extendedCharacterGroups . map ( group => group [ 0 ] . slice ( 1 , - 1 ) ) . join ( '' ) + ']' , 'gi' ) ;
75
+ const baseCharacters = new RegExp ( '[' + baseCharacterGroups . map ( group => group [ 0 ] . slice ( 1 , - 1 ) ) . join ( '' ) + ']' , 'gi' ) ;
58
76
59
77
return ( string ) => {
60
78
const matchingCharacters = string . match ( allCharacters ) ?. length ?? 0 ;
61
79
if ( matchingCharacters > 10 ) {
62
80
if ( string . length > matchingCharacters + 3 ) {
63
- return string . replace ( allCharacters , '.' ) ;
81
+ return string . replace ( baseCharacters , '.' ) ;
64
82
} else {
65
83
return string ;
66
84
}
67
85
}
68
86
69
- for ( const group of characterGroups ) {
87
+ for ( const group of extendedCharacterGroups ) {
70
88
string = string . replace ( new RegExp ( group [ 0 ] , 'gi' ) , group [ 0 ] ) ;
71
89
}
72
90
return string ;
You can’t perform that action at this time.
0 commit comments