File tree Expand file tree Collapse file tree 3 files changed +16
-25
lines changed
workspaces/adventure-pack
goodies/typescript/String.prototype.caesar
src/app/__tests__/__snapshots__ Expand file tree Collapse file tree 3 files changed +16
-25
lines changed Original file line number Diff line number Diff line change @@ -10,11 +10,8 @@ declare global {
1010}
1111
1212String . prototype . caesar = function ( this : String , delta : number = 1 ) : string {
13- return this . replaceAll (
14- / ( [ a - z ] ) | [ A - Z ] / g,
15- ( letter : string , lower : string | undefined ) => {
16- const offset = ( lower == null ? "A" : "a" ) . ord ( ) ;
17- return ( ( letter . ord ( ) - offset + delta ) . positiveMod ( 26 ) + offset ) . chr ( ) ;
18- } ,
19- ) ;
13+ return this . replaceAll ( / [ a - z ] / gi, ( letter : string ) => {
14+ const offset = ( letter >= "A" && letter <= "Z" ? "A" : "a" ) . ord ( ) ;
15+ return ( ( letter . ord ( ) - offset + delta ) . positiveMod ( 26 ) + offset ) . chr ( ) ;
16+ } ) ;
2017} ;
Original file line number Diff line number Diff line change @@ -2408,8 +2408,8 @@ String.prototype.ord = function () {
24082408};
24092409
24102410String.prototype.caesar = function (delta = 1) {
2411- return this.replaceAll(/( [a-z])|[A-Z]/g , (letter, lower ) => {
2412- const offset = (lower == null ? "A" : "a").ord();
2411+ return this.replaceAll(/[a-z]/gi , (letter) => {
2412+ const offset = (letter >= "A" && letter <= "Z" ? "A" : "a").ord();
24132413 return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
24142414 });
24152415};
@@ -5043,13 +5043,10 @@ String.prototype.ord = function (this: String): number {
50435043};
50445044
50455045String.prototype.caesar = function (this: String, delta: number = 1): string {
5046- return this.replaceAll(
5047- /([a-z])|[A-Z]/g,
5048- (letter: string, lower: string | undefined) => {
5049- const offset = (lower == null ? "A" : "a").ord();
5050- return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
5051- },
5052- );
5046+ return this.replaceAll(/[a-z]/gi, (letter: string) => {
5047+ const offset = (letter >= "A" && letter <= "Z" ? "A" : "a").ord();
5048+ return ((letter.ord() - offset + delta).positiveMod(26) + offset).chr();
5049+ });
50535050};
50545051
50555052/////////////////////////// END ADVENTURE PACK CODE ////////////////////////////"
Original file line number Diff line number Diff line change @@ -1310,8 +1310,8 @@ import "Number.prototype.positiveMod";
13101310import "String.prototype.ord";
13111311
13121312String.prototype.caesar = function (delta = 1) {
1313- return this .replaceAll (/ ( [a-z ] ) | [ A-Z ] / g , (letter , lower ) => {
1314- const offset = (lower == null ? " A" : " a" ).ord ();
1313+ return this .replaceAll (/ [a-z ] / gi , (letter ) => {
1314+ const offset = (letter >= " A " && letter <= " Z " ? " A" : " a" ).ord ();
13151315 return ((letter .ord () - offset + delta ).positiveMod (26 ) + offset ).chr ();
13161316 });
13171317} ;"
@@ -2869,13 +2869,10 @@ declare global {
28692869}
28702870
28712871String.prototype.caesar = function (this: String, delta: number = 1): string {
2872- return this .replaceAll (
2873- / ([a-z ] )| [A-Z ] / g ,
2874- (letter : string , lower : string | undefined ) => {
2875- const offset = (lower == null ? " A" : " a" ).ord ();
2876- return ((letter .ord () - offset + delta ).positiveMod (26 ) + offset ).chr ();
2877- },
2878- );
2872+ return this .replaceAll (/ [a-z ] / gi , (letter : string ) => {
2873+ const offset = (letter >= " A" && letter <= " Z" ? " A" : " a" ).ord ();
2874+ return ((letter .ord () - offset + delta ).positiveMod (26 ) + offset ).chr ();
2875+ });
28792876} ;"
28802877`;
28812878
You can’t perform that action at this time.
0 commit comments