• ESP8266

    Für ein aktuelles Projekt brauchte ich eine RegExp, um großgeschriebene Wörter aus einem Titel zu filtern. Dabei sollten aber auch sog. common words, also Wörter die oft benutzt werden und keine Bedeutung haben, berücksichtigt und gelöscht werden.

    Konkret sieht das so aus:

    Input-String:

    Der DHT22 am D1 Mini - Temperatur und Luftfeuchtigkeit messen - Tutorial

    Output-String:

    dht22-d1-mini-temperatur-luftfeuchtigkeit


    Ich dachte mir ich teile kurz und knackig meine kleine Funktion, da ich das in Zukunft wahrscheinlich des Öfteren nochmal brauchen werde. Außerdem gibt es unter euch vielleicht auch den ein oder anderen, der es mal gebrauchen könnte. 🙂

    Die Funktion sieht wie folgt aus:

    function generateDiscordTitle(title){
    	var regexRule = /\b[A-Z][A-Za-z0-9]*\b/g;
    	var inputString = title;
    
    	var commonWords = ["der", "die", "das", "tutorial"];
    
    	var generatedTags = inputString.match(regexRule, inputString);
    	
    	var topicTitle = [];
    	
    	generatedTags.forEach(function(item){
    		var itemLowercased = item.toLowerCase();
    		var itemIsCommonWord = commonWords.includes(itemLowercased);
    			
    		if(!itemIsCommonWord){
    			topicTitle.push(itemLowercased);
    		}
    			
    	});
    	
    	
    	return topicTitle.join('-');
    }
    

    Anwendung

    var topicTitle = generateDiscordTitle("Der DHT22 am D1 Mini - Temperatur und Luftfeuchtigkeit messen - Tutorial");
    
    console.log(topicTitle); 
    
    dht22-d1-mini-temperatur-luftfeuchtigkeit
    

    Die Liste der common words ist sehr überschaubar

    var commonWords = ["der", "die", "das", "tutorial"];
    

    … und kann natürlich nach Belieben erweitert oder auch aus einer Datei ausgelesen werden.

Ähnliche Themen

  • 2
  • 1
  • 1
  • 7
  • 4