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>");