Hinweis auf regex101.com für das Experimentieren mit Regulären Ausdrücken . Hier kommen einführende Beispiele zu regulären Ausdrücken.
Mit new RegExp(,) können dynamisch (zur Laufzeit) reguläre Ausdrücke erzeugt und verwendet werden.
CHECK IF NUMBER IS A FLOAT /^\-?[0-9]*\.0*[1-9]+[0-9]*$/
Funktion | String-Beispiele | Anzeige |
---|---|---|
indexOf() lastIndexOf() search() |
var str = "xyz3456789xyz345"; var find = "xyz"; var idx1 = str.indexOf(find); var idx2 = str.indexOf(find,idx1+1); var idx3 = str.lastIndexOf(find); var re = new RegExp(find,"gi"); var idx4 = str.search(re); var s = find+" ab idx="+idx1+"<br>"; s += find+" ab idx="+idx2+"<br>"; s += "last idx3="+idx3+"<br>"; s += "search idx4="+idx4+"<br>"; document.write(s); |
Ausgabe von s: |
replace() |
var str = "xyz3456789xyz345"; var s1 = str.replace(/xyz/,"012"); var s2 = str.replace(/xyz/g,"012"); var re = new RegExp("xyz","gi"); var s3 = str.replace(re,"012"); document.write(s1+"<br>"+s2+"<br>"+s3); |
Ausgabe von s1, s2, s3: |
match() |
var str = "xyz3456789xyz345"; var arr = str.match(/xyz/g); var s = "gefunden="; s += arr.length + " mal<br>"; s += "arr=" + arr; document.write(s); |
Ausgabe von s: |
split() |
var i,s = "",str = "Carl G Jung", sep =" "; var arr = str.split(sep); for (i=0; i < arr.length; ++i) { s += "arr["+i+"]="+arr[i]+"<br>"; } document.write(s); |
Teilstrings von str: |
exec() index lastIndex |
var arr, s = "", str = "Carl G Jung"; var re = new RegExp("\\w+","g"); while( arr = re.exec(str) ) { s += arr.index; //+"-"+arr.lastIndex; s += "-"+(arr.index+arr.toString().length); s += ":"+ arr + "<br>"; } document.write(s); |
Durchläuft str, ermittelt auch die Positionen: |
exec() RegExp.$ split() | var s1="", s2="<br />", s3="<br />"; var str = "Carl G. Jung"; var re = new RegExp(/(\w.+)\s(\w.+)/g); var arr = re.exec(str); for (i=0; i < arr.length; ++i) { s1 += "arr["+i+"]="+arr[i]+"<br />"; } for (i=1; i < arr.length; ++i) { s2 += "RegExp.$"+i+"="; s2 += eval("RegExp.$"+i)+"<br />"; } var arr3 = str.split(" "); for (i=0; i < arr3.length; ++i) { s3 += "arr3["+i+"]="+arr3[i]+"<br />"; } document.write(s1+s2+s3); | einzelne Worte: |
Beispiele | Anzeige | |
---|---|---|
. |
var cr="<br />"; var erg=""; var str1 = "abcd"; if ( /.../.test(str1) ) { erg += cr+cr+"Geg zu 1:" + str1; erg += cr+"Erg: str1.length >= 3"; } document.write(erg); | |
() |
var str2 = "Hallo WELT"; erg=""; if ( /^(H..)....(E..)$/i.test(str2) ) { erg += cr+cr+"Erg zu 2:" + str2; erg += cr+"RegExp.$1=" + RegExp.$1; erg += cr+"RegExp.$2=" + RegExp.$2; } document.write(erg); | |
+ |
var str3 = "SchiffFahrt"; erg=""; if ( /(f+)/i.test(str3) ) { erg += cr+cr+"Erg zu 3:" + str3; erg += cr+"RegExp.$1=" + RegExp.$1; } document.write(erg); | |
? |
var str4 = "Es ist ein Mann?"; erg=""; if ( /(M.+?N)/i.test(str4) ) { erg += cr+cr+"Erg zu 4:" + str4; erg += cr+"RegExp.$1=" + RegExp.$1; } document.write(erg); | |
var str5 = "SchiffFahrt"; erg=""; if ( /(f*a)/i.test(str5) ) { erg += cr+cr+"Erg zu 5:" + str5; erg += cr+"RegExp.$1=" + RegExp.$1; } document.write(erg); | ||
{} |
var str6 = "SchiffFahrt"; erg=""; if ( /(f{1,3})/i.test(str6) ) { erg += cr+cr+"Erg zu 6:" + str6; erg += cr+"RegExp.$1=" + RegExp.$1; } document.write(erg); | |
[] |
var str7 = "Es ist ein Mann?"; erg=""; if ( /([ei]).*?([aou])/i.test(str7) ) { erg += cr+cr+"Erg zu 7:" + str7; erg += cr+"RegExp.$1=" + RegExp.$1; erg += cr+"RegExp.$2=" + RegExp.$2; } document.write(erg); | |
| |
var str8 = "Hallo WELT"; erg=""; if ( /(HELLO|hilo|elt)/i.test(str8) ) { erg += cr+cr+"Erg zu 8:" + str8; erg += cr+"RegExp.$1=" + RegExp.$1; } document.write(erg); | |
\b |
var str9 = "HALLO Ellon"; erg=""; if ( /(llo\b)/i.test(str9) ) { erg += cr+cr+"Erg zu 9:" + str9; erg += cr+"RegExp.$1=" + RegExp.$1; erg += cr+"RegExp.$2=" + RegExp.$2; } document.write(erg); | |
\w |
var str10 = "Hallo WELT"; erg=""; if ( /(\w) (\w)/i.test(str10) ) { erg += cr+cr+"Erg zu 10:" + str10; erg += cr+"RegExp.$1=" + RegExp.$1; erg += cr+"RegExp.$2=" + RegExp.$2; } document.write(erg); | |
\W |
var str11 = "Blanks zwischen Worten"; erg=""; if ( /^(.*?)\W(.*?)\W(.*?)$/.test(str11) ) { erg += cr+cr+"Erg zu 11:" + str11; erg += cr+"RegExp.$1=" + RegExp.$1; erg += cr+"RegExp.$2=" + RegExp.$2; erg += cr+"RegExp.$3=" + RegExp.$3; } document.write(erg); | |
var str12 = "cr\nzwischen\nWorten"; erg=""; if ( /^([\s\S]*?)\n([\s\S]*?)$/ .test(str12) ) { erg += cr+cr+"Erg zu 12:" + str12; erg += cr+"RegExp.$1=" + RegExp.$1; erg += cr+"RegExp.$2=" + RegExp.$2; erg += cr+"RegExp.$3=" + RegExp.$3; } document.write(erg); |
Dieses Beispiel ersetzt in src alle ' durch "
var src = "href='www.fh-giessen.de' usw"; src = new String(src).replace(/'/gi, '"'); document.write(src);
Beispiel Escapen von RegExp-Zeichen (bei Benutzereingaben?):
function escape_regexpr_Zeichen (str) { // $& meint den komplett erkannten String return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); }
Dieses Beispiel verwendet anstelle eines Ersetzungstrings (Repl-String) eine Funktion, der die gefundenen Strings übergeben werden und deren Rückgabestring dann der Ersetzungsstring ist.
function func(s) {return s.toLowerCase();} src = "AB Ab ÄB"; re = new RegExp("AB","gi"); src = new String(src).replace(re, func); document.write("src = "+src);
var src = "pre<a href='www.fh-giessen.de'" +" title='fh-Titel'> FH-Giessen </a>post"; var i=0, s=""; var arr = src.split("='"); while(arr && arr[i]) { s +="<br /> // arr["+i+"]=\"" + arr[i] + "\";"; i++; } document.write(s);
1. Beispiel:
Ist ein urlStr
-String gegeben, so ermittelt
is_external_url_safe_for_navigation(urlStr)
was der name sagt.
function is_external_url_safe_for_navigation(urlStr) { var regEx = new RegExp("^(http(s?)|ftp|file)://", "i"); return regEx.exec(urlStr); }
2. Beispiel:
Das folgende Beispiel verwendet den regulären Ausdruck
var re = new RegExp(find, "gi");
,
der jede Fundstelle infolge von
while( arr = re.exec(src) ) {...}
durchläuft.
In der while-Schleife können
die Char-Indizes i1 (Start-Char) und
i2 (ein Char-Index nach dem Ende der Fundstelle)
benutzt werden.
In der while-Schleife können auch die "Klammerinhalte"
RegExp.$1, RegExp.$2, usw. vewendet werden.
var src = "pre<a href='www.fh-gi.de' title = \"fh-Titel\">FH-Gi</a>post"; // 0123456789012345678901234567890123 456789012 345678901234567 // 0 1 2 3 4 5 var find = "(\\w+)[\\s\=]+[\'\"]([\\S]+)[\'\"]"; var re = new RegExp(find,"gi"); var s = "", arr;// = []; var i, i1, i2; while( arr = re.exec(src) ) { i1 = arr.index; i2 = i1 + arr.toString().length; s += "<br>" + i1 + "-" + i2 + ":"; for (i=0; i < arr.length; i++) { var tem = eval("RegExp.$"+i); if(tem) s += "<br> RegExp.$"+i+" :"+tem; if(arr[i]) s += "<br> arr["+i+"]:" + arr[i]; } } document.write(s);
Ergebnis ist in s ist:
var src="pre<a href='www.fh-giessen.de' title='fh-Titel'> FH-Giessen </a>post"; // 0123456789012345678901234567890123456 78901234567890123456789012345678 // 0 1 2 3 4 5 6 var re_arr = ["www","\\t", "\\B","\\b", "\\W+","\\w+", "\\S+","\\s+", "\\S.*?\\b", "\\w+|\\s+"]; var s = "<pre>Ergebnis:"; for(var i=0;i < re_arr.length;i++) { var match = re_arr[i]; var re = new RegExp(match, "gi"); var sm = src.match(re);if(!sm)continue; s += "<br>"+match+" match "+sm.length+"mal"; } document.write(s+"</pre>");