• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

html taschenrechnerprogrammierung ein paar fragen

hackiii

Neues Mitglied
hallo zusammen
für meine weiterbildung muss ich einen taschenrechner in html programmieren allerdings benötige ich zu ein paar sachen noch hilfe:

-es soll in der eingabe max. 1punkt erlaubt sein
-mindestens eine zahl muss vor dem punkt stehen
-es darf keine null am anfang sein außer wenn ein punkt folgt

ich hoffe ihr könnt mir helfen , vielen dank
 
Werbung:
-max. 1 Punkt:
Code:
/\b\d+\.?\d+\b/
-min. 1 Zahl vor Punkt:
Code:
/\d+\./
-keine 0 außer wenn danach Punkt:
Code:
/[0-9]+\.|[1-9]/
Hab ich jetz nich ausprobiert, aber so in der Art müsste es sein


edit: nur mit HTML ist das nicht möglich, dafür musst du JavaScript, PHP o. ä verwenden
 
HTML ist eine Sprache mit der man inhalt auszeichnet.

<p>Einen Text zeichnet man mit p als Absatz aus </p>
HTML hat nichts mit einer Programmiersprache zu tun.
Wie willst du damit einen Taschenrechner programmieren?

Wer immer dir das aufgetragen hat kennt sich selber nicht aus. Mit JavaScript denke ich geht das, php auch und bestimmt auch noch in anderen Sprachen die du in eine Website einbetten kannst. In HTML jedoch nicht.
 
Werbung:
alogheo hat vergessen zu sagen, dass er hier von Validierung über JavaScript mittels Regular Expressions spricht. Es gibt im Netz einige Webseiten, wo du diese Expressions testen kannst, bevor du jedes Mal deinen Code änderst, abspeicherst, aufrufst und so.
Beispiel: http://www.fileformat.info/tool/regex.htm
 
entschuldigung per javaskript solls sein... hab nich wirklich ahnung von
der vorläufige rechner sieht wie folgt aus, allerdings fehlen die besagten anforderungen noch:

<html>
<head>
<title>JavaScript Parameter 28.02.2011</title>
</head>
<script type="text/javascript">
function Check (pEingabe) {
var nur_das = "0123456789[]()-+*%/.";
for (var i = 0; i < pEingabe.length; i++)
if (nur_das.indexOf(pEingabe.charAt(i)) < 0)
return false;
return true;
}


var vOp = "";
function schreibeZahl(pEingabe){

document.Formular.schreibeZahl1.value=document.Formular.schreibeZahl1.value + pEingabe;
}
function loesche() {
document.Formular.Ausgabe.value= "";
}
function zurück() {
vKette = document.formular.Ausgabe.value;
vL = vKette.length;
vKette = vKette.substring(0,vL-1);
document.formular.Ausgabe.value = vKette;
}
function rechne(pOperator){
document.Formular.ergebnisZahl1.value = document.Formular.schreibeZahl1.value;
document.Formular.schreibeZahl1.value = "";
vOp = pOperator;
}

function rechneErg(){
vRechnung = document.Formular.ergebnisZahl1.value + vOp + document.Formular.schreibeZahl1.value
vErg = eval(vRechnung);

document.Formular.ergebnisZahl1.value = vErg ;
document.Formular.schreibeZahl1.value = vRechnung ;

vOp = "";
}
function wurzel(){
vErg=Math.sqrt(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
function sinus(){
vErg=Math.sin(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
function cosinus(){
vErg=Math.cos(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
function tangens(){
vErg=Math.tan(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
</script>
<body>
<form name="Formular" action="">
<table border=4>
<tr>
<td><Input type="text" name="ergebnisZahl1" size="12" value=" " onClick="schreibeZahl(Zeichen);"> </td>
<td colspan="3"><Input type="reset" style="width:300px;height:20px;" value=" AC " onClick="schreibeZahl();"> </td>
</tr>
<tr>
<td><Input type="text" name="schreibeZahl1" size="12" value=" " onClick="schreibeZahl(pEingabe);"> </td>
<td colspan="3"><Input type="reset" style="width:300px;height:20px;" value=" C " onClick="schreibeZahl();"> </td>
</tr>
<tr>
<td><Input type="button" size="15" value=" sin " onClick="sinus('sin');"> </td>
<td><Input type="button" size="15" value=" cos " onClick="cosinus('cos');"> </td>
<td><Input type="button" size="15" value=" tan " onClick="tangens('tan');"> </td>
<td><Input type="button" size="15" value=" wur " onClick="wurzel('wur');"> </td>
</tr>
<tr>

<td><Input type="button" size="15" value=" 7 " onClick="schreibeZahl('7');"> </td>
<td><Input type="button" size="15" value=" 8 " onClick="schreibeZahl('8');"> </td>
<td><Input type="button" size="15" value=" 9 " onClick="schreibeZahl('9');"> </td>
<td><Input type="button" size="15" value=" / " onClick="rechne('/');"> </td>

</tr>
<tr>
<td><Input type="button" size="15" value=" 4 " onClick="schreibeZahl('4');"> </td>
<td><Input type="button" size="15" value=" 5 " onClick="schreibeZahl('5');"> </td>
<td><Input type="button" size="15" value=" 6 " onClick="schreibeZahl('6');"> </td>

<td><Input type="button" size="15" value=" * " onClick="rechne('*');"> </td>
</tr>
<tr>
<td><Input type="button" size="15" value=" 1 " onClick="schreibeZahl('1');"> </td>
<td><Input type="button" size="15" value=" 2 " onClick="schreibeZahl('2');"> </td>
<td><Input type="button" size="15" value=" 3 " onClick="schreibeZahl('3');"> </td>

<td><Input type="button" size="15" value=" - " onClick="rechne('-');"> </td>
</tr>
<tr>
<td><Input type="button" size="15" value=" 0 " onClick="schreibeZahl('0');"> </td>
<td><Input type="button" size="15" value=" , " onClick="schreibeZahl('.');"> </td>
<td><Input type="button" size="15" value=" +/- " onClick="schreibeZahl('-');"> </td>
<td><Input type="button" size="15" value=" + " onClick="rechne('+');"> </td>
</tr>
<tr>
<td colspan="4"><Input type="button" style="width:405px;height:20px;" value=" = " onClick="rechneErg('=');"> </td>
</table>
</form>
</body>
</html>
 
SELFHTML: JavaScript / Objektreferenz / String

Code:
function Check (pEingabe) {
  var nur_das = "0123456789[]()-+*%/.";
  for (var i = 0; i < pEingabe.length; i++)
  {
    if (nur_das.indexOf(pEingabe.charAt(i)) < 0)
      return false;
  }
  if(pEingabe.search(/\b\d+\.?\d+\b/) == -1 ||
    (pEingabe.search(/\./) != -1 && pEingabe.search(/\d+\./) == -1) ||
     [FONT=monospace]pEingabe.search([/FONT]/[0-9]+\.|[1-9]/) == -1)
    return false;
  return true;
}
 
Werbung:
<html>
<head>
<title>JavaScript Parameter 28.02.2011</title>
</head>
<script type="text/javascript">
//function Check (pEingabe) {
var nur_das = "0123456789[]()-+*%/.";
for (var i = 0; i < pEingabe.length; i++)
{
if (nur_das.indexOf(pEingabe.charAt(i)) < 0)
return false;
}
if(pEingabe.search(/\b\d+\.?\d+\b/) == -1 ||
(pEingabe.search(/\./) != -1 && pEingabe.search(/\d+\./) == -1) ||
pEingabe.search(/[0-9]+\.|[1-9]/) == -1)
return false;
return true;
}

var vOp = "";
function schreibeZahl(pEingabe){

document.Formular.schreibeZahl1.value=document.Formular.schreibeZahl1.value + pEingabe;
}
function loesche() {
document.Formular.Ausgabe.value= "";
}
function zurück() {
vKette = document.formular.Ausgabe.value;
vL = vKette.length;
vKette = vKette.substring(0,vL-1);
document.formular.Ausgabe.value = vKette;
}
function rechne(pOperator){
document.Formular.ergebnisZahl1.value = document.Formular.schreibeZahl1.value;
document.Formular.schreibeZahl1.value = "";
vOp = pOperator;
}

function rechneErg(){
vRechnung = document.Formular.ergebnisZahl1.value + vOp + document.Formular.schreibeZahl1.value
vErg = eval(vRechnung);

document.Formular.ergebnisZahl1.value = vErg ;
document.Formular.schreibeZahl1.value = vRechnung ;

vOp = "";
}
function wurzel(){
vErg=Math.sqrt(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
function sinus(){
vErg=Math.sin(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
function cosinus(){
vErg=Math.cos(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
function tangens(){
vErg=Math.tan(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
</script>
<body>
<form name="Formular" action="">
<table border=4>
<tr>
<td><Input type="text" name="ergebnisZahl1" size="12" value=" " onClick="schreibeZahl(Zeichen);"> </td>
<td colspan="3"><Input type="reset" style="width:300px;height:20px;" value=" AC " onClick="schreibeZahl();"> </td>
</tr>
<tr>
<td><Input type="text" name="schreibeZahl1" size="12" value=" " onClick="schreibeZahl(pEingabe);"> </td>
<td colspan="3"><Input type="reset" style="width:300px;height:20px;" value=" C " onClick="schreibeZahl();"> </td>
</tr>
<tr>
<td><Input type="button" size="15" value=" sin " onClick="sinus('sin');"> </td>
<td><Input type="button" size="15" value=" cos " onClick="cosinus('cos');"> </td>
<td><Input type="button" size="15" value=" tan " onClick="tangens('tan');"> </td>
<td><Input type="button" size="15" value=" wur " onClick="wurzel('wur');"> </td>
</tr>
<tr>

<td><Input type="button" size="15" value=" 7 " onClick="schreibeZahl('7');"> </td>
<td><Input type="button" size="15" value=" 8 " onClick="schreibeZahl('8');"> </td>
<td><Input type="button" size="15" value=" 9 " onClick="schreibeZahl('9');"> </td>
<td><Input type="button" size="15" value=" / " onClick="rechne('/');"> </td>

</tr>
<tr>
<td><Input type="button" size="15" value=" 4 " onClick="schreibeZahl('4');"> </td>
<td><Input type="button" size="15" value=" 5 " onClick="schreibeZahl('5');"> </td>
<td><Input type="button" size="15" value=" 6 " onClick="schreibeZahl('6');"> </td>

<td><Input type="button" size="15" value=" * " onClick="rechne('*');"> </td>
</tr>
<tr>
<td><Input type="button" size="15" value=" 1 " onClick="schreibeZahl('1');"> </td>
<td><Input type="button" size="15" value=" 2 " onClick="schreibeZahl('2');"> </td>
<td><Input type="button" size="15" value=" 3 " onClick="schreibeZahl('3');"> </td>

<td><Input type="button" size="15" value=" - " onClick="rechne('-');"> </td>
</tr>
<tr>
<td><Input type="button" size="15" value=" 0 " onClick="schreibeZahl('0');"> </td>
<td><Input type="button" size="15" value=" , " onClick="schreibeZahl('.');"> </td>
<td><Input type="button" size="15" value=" +/- " onClick="schreibeZahl('-');"> </td>
<td><Input type="button" size="15" value=" + " onClick="rechne('+');"> </td>
</tr>
<tr>
<td colspan="4"><Input type="button" style="width:405px;height:20px;" value=" = " onClick="rechneErg('=');"> </td>
</table>
</form>
</body>
</html>
 
Wenn ich imr den rest des quelltextes ansehe, fällt mir auf, dass du check() nie aufrufst...

So müsstest du sie z.B. aufrufen:
Code:
function wurzel(){
     if(Check(document.Formular.schreibeZahl1.value))
  {
    vErg=Math.sqrt(document.Formular.schreibeZahl1.value);
    document.Formular.ergebnisZahl1.value = vErg;
  }
}
 
Werbung:
Kommt drauf an wann du willst, wann sie aufgerufen wird. Wenn eine Fehlermeldung kommen soll, wenn der Client rechnet, dann so wie oben beschrieben. Oder wenn der Client etwas eingibt, dann über den onchange-eventHandler
 
Werbung:
dann, wie gesagt, mit onchange:
<Input type="text" name="schreibeZahl1" size="12" value=" " onClick="schreibeZahl(pEingabe);" onchange="Check(this.value);">
 
Werbung:
da steht nix, ich stell nochmal den quelltext rein:

<html>
<head>
<title>JavaScript Parameter 28.02.2011</title>
</head>
<script type="text/javascript">
//function Check (pEingabe) {
var nur_das = "0123456789[]()-+*%/.";
for (var i = 0; i < pEingabe.length; i++)
{
if (nur_das.indexOf(pEingabe.charAt(i)) < 0)
return false;
}
if(pEingabe.search(/\b\d+\.?\d+\b/) == -1 ||
(pEingabe.search(/\./) != -1 & pEingabe.search(/\d+\./) == -1) ||
pEingabe.search(/[0-9]+\.|[1-9]/) == -1)
return false;
return true;
}

var vOp = "";
function schreibeZahl(pEingabe){

document.Formular.schreibeZahl1.value=document.Formular.schreibeZahl1.value + pEingabe;
}
function loesche() {
document.Formular.Ausgabe.value= "";
}
function zurück() {
vKette = document.formular.Ausgabe.value;
vL = vKette.length;
vKette = vKette.substring(0,vL-1);
document.formular.Ausgabe.value = vKette;
}
function rechne(pOperator){
document.Formular.ergebnisZahl1.value = document.Formular.schreibeZahl1.value;
document.Formular.schreibeZahl1.value = "";
vOp = pOperator;
}

function rechneErg(){
vRechnung = document.Formular.ergebnisZahl1.value + vOp + document.Formular.schreibeZahl1.value
vErg = eval(vRechnung);

document.Formular.ergebnisZahl1.value = vErg ;
document.Formular.schreibeZahl1.value = vRechnung ;

vOp = "";
}
function wurzel(){
vErg=Math.sqrt(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
function sinus(){
vErg=Math.sin(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
function cosinus(){
vErg=Math.cos(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}
function tangens(){
vErg=Math.tan(document.Formular.schreibeZahl1.value);
document.Formular.ergebnisZahl1.value = vErg;
}

</script>
<body>
<form name="Formular" action="">
<table border=4>
<tr>
<td><Input type="text" name="ergebnisZahl1" size="14" value="" onClick="schreibeZahl(Zeichen);"> </td>
<td colspan="3"><Input type="reset" style="width:300px;height:20px;" value=" AC " onClick="schreibeZahl();"> </td>
</tr>
<tr>
<td><Input type="text" name="schreibeZahl1" size="14" maxlength="12" value="" onClick="schreibeZahl(pEingabe);" onchange="Check(this.value);"> </td>
<td colspan="3"><Input type="reset" style="width:300px;height:20px;" value=" C " onClick="schreibeZahl();"> </td>
</tr>
<tr>
<td><Input type="button" size="15" value=" sin " onClick="sinus('sin');"> </td>
<td><Input type="button" size="15" value=" cos " onClick="cosinus('cos');"> </td>
<td><Input type="button" size="15" value=" tan " onClick="tangens('tan');"> </td>
<td><Input type="button" size="15" value=" wur " onClick="wurzel('wur');"> </td>
</tr>
<tr>

<td><Input type="button" size="15" value=" 7 " onClick="schreibeZahl('7');"> </td>
<td><Input type="button" size="15" value=" 8 " onClick="schreibeZahl('8');"> </td>
<td><Input type="button" size="15" value=" 9 " onClick="schreibeZahl('9');"> </td>
<td><Input type="button" size="15" value=" / " onClick="rechne('/');"> </td>

</tr>
<tr>
<td><Input type="button" size="15" value=" 4 " onClick="schreibeZahl('4');"> </td>
<td><Input type="button" size="15" value=" 5 " onClick="schreibeZahl('5');"> </td>
<td><Input type="button" size="15" value=" 6 " onClick="schreibeZahl('6');"> </td>

<td><Input type="button" size="15" value=" * " onClick="rechne('*');"> </td>
</tr>
<tr>
<td><Input type="button" size="15" value=" 1 " onClick="schreibeZahl('1');"> </td>
<td><Input type="button" size="15" value=" 2 " onClick="schreibeZahl('2');"> </td>
<td><Input type="button" size="15" value=" 3 " onClick="schreibeZahl('3');"> </td>

<td><Input type="button" size="15" value=" - " onClick="rechne('-');"> </td>
</tr>
<tr>
<td><Input type="button" size="15" value=" 0 " onClick="schreibeZahl('0');"> </td>
<td><Input type="button" size="15" value=" , " onClick="schreibeZahl('.');"> </td>
<td><Input type="button" size="15" value=" +/- " onClick="schreibeZahl('-');"> </td>
<td><Input type="button" size="15" value=" + " onClick="rechne('+');"> </td>
</tr>
<tr>
<td colspan="4"><Input type="button" style="width:405px;height:20px;" value=" = " onClick="rechneErg('=');"> </td>
</table>
</form>
</body>
</html>
 
In deinem Code Code sind Leerzeichen an Stellen, wo keine hingehören
z.B.
Code:
document.Formular.schreibeZahl1.val ue

wenn du die wegmachst sollte es funktionieren.
 
die leerzeichen sind im original nicht da, war n anderer fehler. jetzt gehts mit den buttons wieder allerdings kann man immer noch ganz normal zwei punkte setzen, null am anfang und soweiter...
 
Werbung:
Du musst dann noch iwie das zuletzt eingegebene Zeichen entfernen, wenn es da nicht hinsoll. Könntest es ma so probieren:

HTML:
<Input type="text" name="schreibeZahl1" size="14" maxlength="12"  value="" onClick="schreibeZahl(pEingabe);"  onchange="if(!Check(this.value)) this.value=this.value.substr(0,this.value.length-1);">
 
Zurück
Oben