You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
	
	
		
			
				
					
						
							|  |  |  | export function cleanSearchTerm(searchTerm: string) { | 
					
						
							|  |  |  |   const lowercase = searchTerm.toLowerCase(); | 
					
						
							|  |  |  |   const withoutSpecialCharacters = lowercase.replace(/([!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~])/g, ' '); | 
					
						
							|  |  |  |   const whiteSpaceNormalized = withoutSpecialCharacters.replace(/\s+/g, ' '); | 
					
						
							|  |  |  |   const byToken = whiteSpaceNormalized.split(' '); | 
					
						
							|  |  |  |   // be aware that a user typing Note To Self will have an issue when the `not` part of it is typed as the not word is reserved
 | 
					
						
							|  |  |  |   const withoutSpecialTokens = byToken.filter( | 
					
						
							|  |  |  |     token => | 
					
						
							|  |  |  |       token && | 
					
						
							|  |  |  |       token !== 'and' && | 
					
						
							|  |  |  |       token !== 'or' && | 
					
						
							|  |  |  |       token !== 'not' && | 
					
						
							|  |  |  |       token !== ')' && | 
					
						
							|  |  |  |       token !== '(' && | 
					
						
							|  |  |  |       token !== '+' && | 
					
						
							|  |  |  |       token !== ',' && | 
					
						
							|  |  |  |       token !== 'near' | 
					
						
							|  |  |  |   ); | 
					
						
							|  |  |  |   const withWildcards = withoutSpecialTokens.map(token => `${token}*`); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   return withWildcards.join(' ').trim(); | 
					
						
							|  |  |  | } |