@@ -8,32 +8,67 @@ export class FormatterParser {
88 let transformedValue = value ;
99
1010 if ( typeof value === 'string' || value instanceof String ) {
11- value = value . toString ( ) . toLowerCase ( ) . replace ( / [ ^ a - z A - Z ] ./ g, function ( str ) {
12- return str . toUpperCase ( ) ;
13- } ) ;
14- transformedValue = value . charAt ( 0 ) . toUpperCase ( ) + value . slice ( 1 ) ;
11+ transformedValue = transformedValue
12+ . toLowerCase ( )
13+ . split ( ' ' )
14+ . map ( val => val . charAt ( 0 ) . toUpperCase ( ) + val . slice ( 1 ) )
15+ . join ( ' ' ) ;
1516 }
1617
1718 return {
1819 name : 'toCapitalized' ,
19- result : transformedValue
20+ result : transformedValue ,
21+ previous : value
2022 } ;
2123
2224 }
2325
2426 static toUpperCase : IFormatterParserFn = ( value : any ) : IFormatterParserResult => {
2527 let transformedValue = value ;
2628 if ( typeof value === 'string' || value instanceof String ) {
27-
28- transformedValue = value . toString ( ) . toLowerCase ( ) . replace ( / [ a - z A - Z ] / g, function ( str ) {
29- return str . toUpperCase ( ) ;
30- } ) ;
29+ transformedValue = value . toUpperCase ( ) ;
3130 }
3231
3332 return {
3433 name : 'toUpperCase' ,
35- result : transformedValue
34+ result : transformedValue ,
35+ previous : value
36+ } ;
37+ }
38+
39+ static toLowerCase : IFormatterParserFn = ( value : any ) : IFormatterParserResult => {
40+ let transformedValue = value ;
41+ if ( typeof transformedValue === 'string' || transformedValue instanceof String ) {
42+ transformedValue = transformedValue . toLowerCase ( ) ;
43+ }
44+
45+ return {
46+ name : 'toLowerCase' ,
47+ result : transformedValue ,
48+ previous : value
49+ } ;
50+ }
51+
52+ static replaceString ( searchValue : RegExp , replaceValue : string ) : IFormatterParserFn {
53+
54+ return ( value : any ) => {
55+
56+ let transformedValue = value ;
57+
58+ if ( typeof transformedValue === 'string' || transformedValue instanceof String ) {
59+ transformedValue = transformedValue . replace ( searchValue , replaceValue ) ;
60+ }
61+
62+ const result : IFormatterParserResult = {
63+ name : 'replaceString' ,
64+ result : transformedValue ,
65+ previous : value
66+ } ;
67+
68+ return result ;
69+
3670 } ;
71+
3772 }
3873
3974}
0 commit comments