Eingabe nur bestimmte Kombination aus Zeichen

Tomas Clark

Grünschnabel
Hi Leute,
ich weiß, es wahrscheinlich so etwas von einfach aber ich stehe sowas vo auf dem Schlauch und brauche deshalb Eure Hilfe.

Ich habe eine Wert also z.B. 3 oder 5 u.s.w. ; dieser Wert ist gegeben.
Nun habe ich Eingabe Felder in die Maximal 2 Werte eingegeben werden können.

Nun soll überprüft werden ob die Eingabe die Zeichen enthält, welche gegeben sind, also z.B. bei 3 dürfen die erlaubten Zeichen nur in dieser Kombination eingegeben werden: 1 , 2 , 3 , 11 , 12 , 13 , 21 , 22 , 23 , 31 , 32 , 33 .

Ist sicher nicht so kompliziert aber wie schon gesagt ich stehe auf dem besagten Schlauch.

Tomas
 
Hi,

vielleicht hilft es dir weiter, wenn du mit einem dynamisch generierten regulären Ausdruck die eingegebene Zeichenkette prüfst.
Code:
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>www.tutorials.de</title>
<meta name="author" content="Quaese">
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
  <!--
function checkValue(strValue, intVal){
  var strPattern = eval("/^[1-"+intVal+"]{1,2}$/");

  if(strValue.search(strPattern) == -1)
    alert("Kein korrekter Wert");
  else
    alert("OK");
}
 //-->
</script>
</head>
<body>
<div>
	<input type="text" id="txtID" value="1">
  <button onclick="checkValue(document.getElementById('txtID').value, 3)">checkValue</button>
</div>
</body>
</html>
Die Funktion erwartet als ersten Parameter den zu prüfenden String, als zweiten den Max-Wert.

Vielleicht kannst du damit etwas anfangen.

Ciao
Quaese
 
Hey super, ich danke Dir.
Ich werde das gleich mal ausprobieren.

Tomas

//edit

Mmh, ich bekomme folgende Meldung:
"strValue.search is not a function"
Woran kann das liegen?
 
Hi,

strValue muss ein String sein - eventuell übergibst du Integerwerte. In diesem Fall kannst du folgendes versuchen:
Code:
if(String(strValue).search(strPattern) == -1)
Ciao
Quaese
 
Ok, habe ich geändert, es kommt auch keine Fehlermeldung mehr.
Allerdings ist es jetzt so, daß z.B. bei Eingabe von 1 --> falsch und bei 3 --> richtig (ist ja auch richtig) bei 4 aber auch -->richtig.
Kannst Du mir den Regulärenausdruck einmal kurz erklären?
 
Hi,

bei mir wird das Script korrekt ausgeführt - sowohl für den Fall, dass ich 4 als String übergebe als auch als Integerwert (unter der Voraussetzung, dass der Funktion im zweiten Parameter ein Wert kleiner als 4 übergeben wird).

Der reguläre Ausdruck prüft, ob mindestens eine Ziffer aber höchstens zwei Ziffern {1,2} zwischen 1 und dem übergebenen Maxwert [1-Maxwert] enthalten sind.

Ciao
Quaese
 
Zurück