letztes zeichen

fanste

Erfahrenes Mitglied
Hallo.
Hab da mal eine ganz kleine Frage.
Wie kann ich herrausfinden, was das letzte Zeichen auf der Button Beschriftung ist?
Also:
ich habe einen Button der mit zwei Funtionen belegt ist.
Wenn ich zum erstenmal auf den Button klicke, wird die erste Funktion aufgerufen und an den Button value ein * angehängt. (z.b. aus b wir b*)
Wenn nun aber nochmal darauf geklickt wird, soll die zweite Funktion aufgerufen werden und das * wieder entfernt werden. Dann geht es wieder von vorne los.
Aber um diesen Effekt zu haben, muss ich wissen, ob an der Button Beschriftung ein * hängt oder nicht.
Wie kann ich das also herausfinden?

Im Vorraus schonmal Danke!

mb fanste

PS: Hoffentlich verständlich erklärt
 
lastIndexOf()

Ermittelt das letzte Vorkommen eines Zeichens oder einer Zeichenkette innerhalb einer Zeichenkette und gibt zurück, an wie vielter Stelle das Zeichen in der Zeichenkette steht. Die Zählung beginnt bei 0. Wenn die Suche erfolglos ist, wird -1 zurückgegeben.
Optional ist es möglich, die Funktion in einem zweiten Parameter anzuweisen, ab der wie vielten Stelle in der Zeichenkette sie mit der Suche beginnen soll.

Alternativ:
indexOf()

Ermittelt das erste Vorkommen eines Zeichens oder einer Zeichenkette innerhalb einer Zeichenkette und gibt zurück, an wie vielter Stelle das Zeichen in der Zeichenkette steht. Die Zählung beginnt bei 0. Wenn die Suche erfolglos ist, wird -1 zurückgegeben.
Optional ist es möglich, die Funktion in einem zweiten Parameter anzuweisen, ab der wie vielten Stelle in der Zeichenkette sie mit der Suche beginnen soll.

Musst dann nur noch wissen wie lang dein String ist dann weißt du auch ob das Zeichen an der letzten Stelle steht. wenn das Zeichen eh nur einmal vor kommt brauchst du nur gucken ob es überhaubt einen sinnvollen wert hat ansonsten ist es net vorhanden und somit auch net am Schluss.

Gruß Steff

P.s. Mehr zu String Funktionen findest du hier: http://de.selfhtml.org/javascript/objekte/string.htm
 
Zuletzt bearbeitet:
HTML:
document.fomular.button.value.match(/\*$/)
liefert ture zurück, wenn ein Stern ( * ) am Ende des values des Buttons ist. Bau's in ne if-Abfrage ein oder so.
 
Hallo.
DAnke erstaml für die verdammt schnelle antwort
und wo muss ich das anhängen, bzw wie muss ich das einbinden, um von dem button das letzte zeichen zu finden?
 
Meine Methode mit dem regulären Ausdruck ist die bessere, weil du nicht wissen musst wieviel Zeichen der Wert des Buttons hat, du musst ihn nichtmal vorher kennen und kannst folgende Funktion auf alle Buttons anwenden:
HTML:
if (document.formular.button.value.match(/\*$/) {
       	document.formular.button.value = document.formular.button.value.replace(/\*$/,'');
       	(... Andere Anweisungen im Fall Stern am Ende ...)
       } else {
       	document.formular.button.value += '*';
       	(... Andere Anweisungen im Fall kein Stern am Ende ...)
       }
 
Zuletzt bearbeitet:
Habe dazu doch noch eine Frage.
wenn ich diese Funktion
Code:
function insert_tag(welcher, code)
{
	if(document.post.welcher.value.match(/\*$/))
	{
		document.post.Beitrag.value+='[/'+code+']';
		buttext = eval('document.post.'+welcher+'.value');
		eval('document.post.'+welcher+'.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
	}else{
		document.post.Beitrag.value+='['+code+']';
  		eval('document.post.'+welcher+'.value += "*"');
  	}
}
aufrufe, bringt es mir eine Fehlermeldung. In dieser heißt es,
document.post.welcher.value ist kein Objekt.
aber dieses welcher wird bei mir in der Funktion definiert. Doch irgendwie versteht javascript, dass es nach einem button mit dem namen welcher suchen soll.
Wie kann ich das richtig stellen
mb fanste
 
Bitte bei sowas auch immer den Code für den Button und das Formular in dem er ist mit posten. Das nur am Rane...

Das Problem ist dass du in der if-Anweisung auch eval(blabla) schreiben müsstest. Versuch's mal mit
document.getElementsByName(welcher)[0].value
statt der ganzen eval-Geschichten (ich nehme mal an es gibt nur einen Button mit dem Namen Wert von Variable Welcher). Ist sowieso besser als das ganze eval-Zeugs.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück