RegExp kombinieren in Javascript
Vego
- javascript
Hallo,
gibt es einen Weg RegExp Objekte dynamisch zu kombinieren? Ich habe ein Set an RegExp und fallspezifisch sollen diesen kombiniert und auf ein Textfeld angewendet werden. Und zwar so, dass es eine Art "Oder" Kombination ist (Textfeld enthaelt RegExp1 oder RegExp2 oder ...). Ich koennte natuerlich alle RegExp nacheinander auf das Textfeld anwenden, dass geht aber aus bestimmten Gruenden nicht und ich braeuchte die Kombination als ein RegExp Object, welches ich dann auch mit mir RegExp.toString() ausgeben lassen koennte.
gibt es einen Weg RegExp Objekte dynamisch zu kombinieren?
Was heißt das? Entweder verstehe ich deine Frage nicht oder suchst du einfach den oder-Operator?
Struppi.
Bei sehr einfachen Ausdrücken wäre eine Lösung wie
new RegExp('('+re1.toString().replace(/(^\/|\/$)/g,'')+'|'+re2.toString().replace(/(^\/|\/[ig]?$)/g,'')+')', 'g')
verwendbar. Allerdings wird das bei komplizierteren Ausdrücken und/oder Modifikatoren ausser g nicht mehr funktionieren - besonders kritisch, wenn beide RegExp einander ausschließen bzw. überlagern. Im Zweifel ist es besser, eine entsprechende RegExp selbst zu schreiben (und den eigenen Verstand zu gebrauchen).
Gruß, LX
Vielen Dank fuer den Tipp,
ich glaube ich werde deinen Ratschlag befolgen.
Gruss, V