Reguläre Ausdrücke (Beispiele)

Hinweis auf regex101.com für das Experimentieren mit Regulären Ausdrücken . Hier kommen einführende Beispiele zu regulären Ausdrücken.

Beispiele mit Strings einfache Beispiele

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: b = /re/.test("str"); Sind Zeichenkombinationen enthalten?
  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);


Beispiel: str_neu = str.replace() Suche - Ersetze

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);
Beispiel: arr = str.split() teile mit str oder RegExpr
 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);


Beispiel: arr = re.exec(src)

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:


Beispiel: arr = str.match()

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