Sonderzeichen in einem String suchen
Kathrin
- javascript
Hallo!
also, ich habe ein eingabefeld mit dem namen pass. dieses eingabefeld muss ich nach sonderzeichen durchsuchen. wenn eines gefunden wird, wird ein boolean auf true gesetzt. kann mir vielleicht jemand sagen wie ich das am besten mache mit den sonderzeichen? das sind ja so viele! kann die ja schlecht alle in einen array schreiben.. hat schon mal jemand etwas ähnliches gemacht?
danke!
kathrin
Hi,
kann mir vielleicht jemand sagen wie ich das am besten mache mit den sonderzeichen? das sind ja so viele!
think negative. Es gibt weniger Zeichen, die _nicht_ Sonderzeichen sind.
Cheatah
ja das habe ich auch gemacht aber meine funktion funktioniert nicht
//Array fuer die nicht Sonderzeichen
var andereZeichen = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",0,1,2,3,4,5,6,7,8,9);
for(var x = 0; x < andereZeichen.length ; x++) {
var ergebnis = pass.search(andereZeichen[x]);
if(ergebnis == -1) {
erfuelltCharacterBoolean = true;
break;
}
else {
erfuelltCharacterBoolean = false;
}
}
Hallo Katrin!
Versuchs doch mal so:
var andereZeichen2= escape(andereZeichen);
if (andereZeichen2!=andereZeichen)
alert("Sonderzeichen gefunden);
(escape maskiert dir alle Sonderzeichen als %(hex)ASCII Code
Falls also ein Sonderzeichen im String ist, ist er anschliessend nicht mehr wir vor escape...
VFiel Spass,
Richard
Hi,
Versuchs doch mal so:
hui! Netter Trick, gefällt mir. Er schränkt allerdings die Definition von "Sonderzeichen" gewaltig ein. Wenn das nicht stört, ist der Code aber schön knackig.
Cheatah
Hallo Katrin!
Versuchs doch mal so:
var andereZeichen2= escape(andereZeichen);
if (andereZeichen2!=andereZeichen)
alert("Sonderzeichen gefunden);(escape maskiert dir alle Sonderzeichen als %(hex)ASCII Code
Falls also ein Sonderzeichen im String ist, ist er anschliessend nicht mehr wir vor escape...VFiel Spass,
Richard
und wo soll ich das genau einfügen? sorry, habe so ziemlich keine ahnung von java script... :-(
Hallo Katrin!
Ich gehe davon aus, dass dein Eingabefeld Inhalt in dem String pass vorliegt.
function hasSonderzeichen(pass)
{
var result=true;
var checkTest= escape(andereZeichen);
if (andereZeichen2==andereZeichen)
result=false;
return result;
}
Gibt true zurück, wenn ein Sonderzeichen in pass enthalten, false falls nicht.
Eigentlich solltest du ja selbst programmieren, aber auch durch lesen wird man besser ;)
Richard
Edit:
function hasSonderzeichen(pass)
{
var result=true;
var checkTest= escape(pass);
if (checkTest==pass)
result=false;
return result;
}
Sorry, einige falsche var namen, kommt vom Kopieren!
By,
Richard
Hi,
function hasSonderzeichen(pass)
{
var result=true;
var checkTest= escape(pass);
if (checkTest==pass)
result=false;
return result;
}
function hatSonderzeichen(der_name_hier_interessiert_nur_die_funktion) {
return !der_name_hier_interessiert_nur_die_funktion == escape(der_name_hier_interessiert_nur_die_funktion);
}
Cheatah
Hi,
ja das habe ich auch gemacht aber meine funktion funktioniert nicht
Du siehst nach, ob jedes erlaubte Zeichen in pass vorkommt. Ich tippe mal, das dürfte selten der Fall sein. Kleiner Tipp: Mit einer Regular Expression geht's leichter.
Cheatah
Hi Kathrin,
hat schon mal jemand etwas ähnliches gemacht?
auf http://www.1ngo.de/web/formular.html prüfe ich Formulareingaben und kodiere einige ausgewählte Sonderzeichen und ersetze die übrigen Sonderzeichen durch einen Platzhalter. Am günstigsten finde ich hierfür switch - mal ein Auszug:
for (var y = 0; y < Number(EingabeZeile.length); y++) {
switch(EingabeZeile.charCodeAt(y)) {
...
case 196: z = z + "Ä"; break;
case 214: z = z + "Ö"; break;
...
default:
if (EingabeZeile.charCodeAt(y) > 32 && EingabeZeile.charCodeAt(y) < 127) z = z + EingabeZeile.charAt(y);
else z = z + "¿";
...
freundliche Grüße
Ingo