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.
		
		
		
		
		
			
		
			
	
	
		
			25 lines
		
	
	
		
			726 B
		
	
	
	
		
			TypeScript
		
	
		
		
			
		
	
	
			25 lines
		
	
	
		
			726 B
		
	
	
	
		
			TypeScript
		
	
| 
											7 years ago
										 | export function cleanSearchTerm(searchTerm: string) { | ||
|  |   const lowercase = searchTerm.toLowerCase(); | ||
|  |   const withoutSpecialCharacters = lowercase.replace( | ||
|  |     /([!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~])/g, | ||
|  |     ' ' | ||
|  |   ); | ||
|  |   const whiteSpaceNormalized = withoutSpecialCharacters.replace(/\s+/g, ' '); | ||
|  |   const byToken = whiteSpaceNormalized.split(' '); | ||
|  |   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(); | ||
|  | } |