peterS.: Regular Expression führt zu JS Fehler

Beitrag lesen

hallo Katharina,

heißt das, dass jeder Backslash in meinem Ausdruck mit einem Backslash
escaped werden muss, damit er im regulären Ausdruck vorkommt? Also nicht
nur dieser eine vor dem '+'?

ja, sobald Du darauf angewiesen bist, einen regulaeren ausdruck ueber den
   RegExp-konstruktor zu erzeugen, musst Du genau dies beachten. ausserdem
   gehoeren in diesem fall die beiden begrenzer des RegExp-literals nicht mit
   in die zeichenkette - schon aus diesem grund ist Deinem konstrukt

var reg = new RegExp("/^[\s]*<?(\s*(\+)?\s*[\(]?(\s*[\(]?[0-9]\s*[\)]?\s*[\.]?\s*[\-\/]*\s*){6,})>?\s*$/");

kein erfolg beschieden; besser also so -

reg = new RegExp("^[\\s]*<?(\\s*(\\+)?\\s*[\\(]?(\\s*[\\(]?[0-9]\\s*[\\)]?\\s*[\\.]?\\s*[\\-\\/]*\\s*){6,})>?\\s*$");

- noch einfacher waere, Du notiertest Deinen ausdruck einfach als RegExp-
   literal, dann aendert sich fuer die zeichenfolge naemlich rein gar nichts:

~~~javascript var regX = /[1]<?(\s(+)?\s*[(]?(\s*[(]?[0-9]\s*[)]?\s*[.]?\s*[-/]\s){6,})>?\s*$/;

alert(reg.toString() == regX.toString()); // true;

  
  
  
   so long - peterS. - pseliger@gmx.net  
  
  

-- 
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.  
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - [Douglas Crockford](http://javascript.crockford.com/)  
  
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]

  1. \s ↩︎