• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Regulärer Ausdruck

sierd

New member
Hallo,

warum funktioniert das folgende Script nicht korrekt. Ich finde den Fehler einfach nicht:

HTML:
        var Satz = "er lag wohl krank im Bett";
	var zusuchen="lag";
	var regAus = new RegExp('\b'+zusuchen+'\b','');
        var treffer = Satz.match(regAus); 
        if (treffer != null) { 
          alert('was gefunden');
        } else {
	  alert('nichts gefunden');	
	}

Danke!
Stephan
 
Zuletzt bearbeitet von einem Moderator:
Jetzt habe ich doch noch ein Problem:

var zusuchen="groß"; var Satz="Das Haus ist sehr groß.";
var regAus = new RegExp('\\b'+zusuchen+'\\b','g');

wird nicht gefunden, wohl aber

var zusuchen="große"; var Satz="Das große Haus ist sehr schön.";
var regAus = new RegExp('\\b'+zusuchen+'\\b','g');

Ich nehme an, das liegt am Zeichensatz, das funktioniert nicht, wenn ein Umlaut oder ß am Ende steht.

Danke für einen Hinweis.
 
nee, das liegt an dem punkt der am ende steht

Nö, denn das funktioniert:
var zusuchen="große"; var Satz="Das Haus ist sehr große.";
var regAus = new RegExp('\\b'+zusuchen+'\\b','g');

das aber nicht:
var zusuchen="groß"; var Satz="Das Haus ist sehr groß oder nicht?";
var regAus = new RegExp('\\b'+zusuchen+'\\b','g');

das aber:
var zusuchen="gross"; var Satz="Das Haus ist sehr gross.";
var regAus = new RegExp('\\b'+zusuchen+'\\b','g');
 
Zuletzt bearbeitet:
\b matcht alles was nicht [A-Za-z0-9_] matcht
Äh... nein. \b matched auf gar kein Zeichen, sondern auf einen Wechsel zwischen \w und \W.

Leider kann man sich mit JS keine eigenen Boundaries bauen, da es keine positive lookbehinds gibt. Was du aber machen kannst ist, dass du dir definierst, welche Zeichen vor und nach dem Wort als Begrenzung gesehen werden sollen:
Code:
	var zusuchen="groß";
	var Satz="Das Haus ist sehr groß.";
	var regAus = new RegExp('(?:[^A-ZÄÖÜa-zäöüß_0-9]|^)'+zusuchen+'(?:[^A-ZÄÖÜa-zäöüß_0-9]|$)','g');
	var treffer = Satz.match(regAus); 
	if (treffer != null){ 
		alert('was gefunden');
	}
	else {
		alert('nichts gefunden');	
	}
 
Zurück
Oben