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();
							 | 
						||
| 
								 | 
							
								}
							 |