Regulären Ausdruck dynamisch erzeugen

BlubBlub

Mitglied
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>
	<head>
		<title> HTML Testseite</title>
		<script type='text/javascript'>
			var Aussage = "Wir wollen weisse Waesche waschen";
			var Ergebnis = Aussage.search(/\bweisse\b/);
			alert(Ergebnis);
		</script>
	</head>
	
	<body>
		
    </body>
</html>


HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>
	<head>
		<title> HTML Testseite</title>
		<script type='text/javascript'>
			var Aussage = "Wir wollen weisse Waesche waschen";
			var Suchstring = '\/\\bweisse\\b\/';
			alert(Suchstring);
			var Ergebnis = Aussage.search(Suchstring);
			alert(Ergebnis);
		</script>
	</head>
	
	<body>
		
    </body>
</html>


Hi, wie kann ich dynamisch einen regulären Ausdruck erzeugen, so dass das das zweite Codebeispiel funktioniert?
Das erste gibt mir korrekt 11 aus.
Das zweite gibt mir jedoch -1 aus, was offenbar daran liegt dass ich der search Funktion einen String übergebe, den diese nicht als regulären Ausdruck interpretiert.
Wie macht mans richtig?
 
Jo danke das klappt.
Aber bei einer Sache hab ich immer noch Probleme:
Ich möchte die Position eines bestimmten Selektors ermitteln.
Sprich für 'body' oder '#myID' oder '.myClass'.
Die CSS Daten bekomme ich mit:

Code:
var myCSSText = myDocument.styleSheets[i].cssText;
var myRegString = '\\b' + myDocument.styleSheets[i].rules[j].selectorText + '\\b';
var myRegExp = new RegExp(myRegString);	
alert(myCSSText.search(myRegExp));

In myCSSText ist der CSS Abschnitt als String abgelegt. Wenn ich nun nach #myID suche,
dann hab ich in myRegString stehen: \\b#myID\\b
Leider mach das # Zeichen Probleme dadurch findet er mir den Selektor nicht. Ich hab schon versucht das Rautezeichen mit einem \ zu maskieren aber es zeigt keine Wirkung.
Wie sage ich nun Suche mir nach dem Ausdruck #myID ?
Selbiges Problem tritt bei .myClass auf.

Code:
			body
			{
				color: blue;
			}
			
			#myID
			{
				color: yellow;
				font-style:italic;
			}
			
			.myClass
			{
				color: green;
			}
			
			.myClass2
			{
				font-style:italic;
			}
			
			i
			{
				text-decoration: underline;
			}
 
Zuletzt bearbeitet:
Zurück