@@ -14,8 +14,18 @@ const $delimiter = getElement<HTMLSelectElement>('.js-delimiter');
14
14
const $caseSensitive = getElement < HTMLInputElement > ( '.js-case' ) ;
15
15
const $trim = getElement < HTMLInputElement > ( '.js-trim' ) ;
16
16
const $output = getElement < HTMLTextAreaElement > ( '.js-output' ) ;
17
+ const $expandLink = getElement < HTMLAnchorElement > ( '.js-link-expand' ) ;
17
18
const $submit = getElement < HTMLButtonElement > ( '.js-generate' ) ;
18
19
20
+ function generateExpandUrl ( delimiter : string , pattern : RegExp ) : URL {
21
+ const query = new URLSearchParams ( {
22
+ delimiter,
23
+ numResults : '500' ,
24
+ pattern : pattern . toString ( ) ,
25
+ } ) ;
26
+ return new URL ( `https://www.wimpyprogrammer.com/regex-to-strings/?${ query } ` ) ;
27
+ }
28
+
19
29
function generatePattern ( words : string ) : RegExp {
20
30
const delimiter = $delimiter . options [ $delimiter . selectedIndex ] . value ;
21
31
const isCaseSensitive = $caseSensitive . checked ;
@@ -58,6 +68,9 @@ function onClickGenerate(): void {
58
68
const words = $input . value ;
59
69
const pattern = generatePattern ( words ) ;
60
70
displayPattern ( pattern ) ;
71
+
72
+ const delimiter = $delimiter . options [ $delimiter . selectedIndex ] . value ;
73
+ $expandLink . href = generateExpandUrl ( delimiter , pattern ) . toString ( ) ;
61
74
}
62
75
$submit . addEventListener ( 'click' , onClickGenerate ) ;
63
76
@@ -73,4 +86,7 @@ autoExpandTextarea($output);
73
86
$input . dispatchEvent ( new Event ( 'input' ) ) ;
74
87
const pattern = generatePattern ( exampleInput ) ;
75
88
displayPattern ( pattern ) ;
89
+
90
+ const delimiter = $delimiter . options [ $delimiter . selectedIndex ] . value ;
91
+ $expandLink . href = generateExpandUrl ( delimiter , pattern ) . toString ( ) ;
76
92
} ) ( ) ;
0 commit comments