Oft stört es mich, dass ich Strings schließen und verketten muss um Variablen wie z.B. Nutzernamen mit einzubinden. Als Lösung dafür habe ich eine Prototype-Funktion für die String-Klasse geschrieben, die Variablen aus dem String ersetzt. Dabei nutzt es nicht RegEx bzw. die Replace Funktion und ist somit deutlich performanter als andere Lösungen.

Nutzung
Php Code:

user.sendPrivateMessage("Hallo °BB°_$NICK_°r°, wie geht es dir heute? °BB°_$NICK2_°r° hat dich vermisst.".formater({
	 NICK: user.getProfileLink(),
	 NICK2: user2.getProfileLink()
}));
 


Warnung! Spoiler!

Php Code:

String.prototype.formater = function formater(obj) {
	var str = this.toString();

	var array = [];
	for(var key in obj) {
		array.push({key: key, value: obj[key]});
	}

	//verhindere dass $NAME vor $NAMEN ersetetzt wird - WICHTIG!!!!!
	array.sort(function(a,b){
		return b.key.length - a.key.length; // nach länge abwärts sortieren
	});

	for(var i in array) {
		var key = array[i].key;
		var value = array[i].value;

		var ind = -1;
		var find = '$'+key;
		while((ind = str.indexOf(find)) >= 0) {
			str = str.substring(0, ind) + value + str.substr(ind+find.length);
		}
	}

	return str;
};
 



Bearbeitet von Vampiric Desire (08.01.2016, 09:21:07)
_________________________
/apps install 30559674.ChannelMaster