Reguläre Ausdrücke
Moe
- javascript
0 ulli
Hi,
Ich habe zu den regulären Ausdrücken in JavaScript bezüglich der Performance eine Frage:
Ist es besser einen kurzen, aber meist auch komplizierten, regulären Ausdruck zu verwenden oder doch eher mehrere einfachere Ausdrücke, die mit && im if-Statement verbunden sind.
Wie wirkt sich das auf die Performance aus? Ich denke die beiden werden sich nicht viel schenken, aber ich frage trotzdem mal, welche Variante ihr bevorzugen würdet.
Hier noch ein Beispiel, damit meine Frage hoffentlich klarer wird:
Überprüfung auf eine 'Integer'-Zahl im Format 9999999 oder 9.999.999:
1.Variante
if (string.search(/[1]{1,2}.[0-9]{3}.[0-9]{3}.([0-9]{3})$/) == -1
&& string.search(/[2]{3}.[0-9]{3}.([0-9]{3})$/) == -1
&& string.search(/[3]{1,2}.[0-9]{3}.([0-9]{3})$/) == -1
&& string.search(/[4]{1,2}.[0-9]{3}$/) == -1
&& string.search(/[5]{3}.[0-9]{3}$/) == -1
&& string.search(/[6]+$/) == -1) {fehler}
2.Variante
if (string.search(/(^\d+$)|(^\d{1,3}(.\d{3})?(.\d{3})?(.\d{3})?$)/) == -1) {fehler}
Bin für jeden Tipp dankbar.
gruß moe
hallo
ich würde die zweite variante nehmen. sie ist kurz, übersichtlich und wegen der performance: reguläre ausdrücke sind so oder so in jeder programmier- / (teilweise)scriptsprache implementiert. das heißt, dass sie auf performance getrimmt sind.
bei einem, noch sehr kurzen, wie deinem spielt die performance noch keine rolle.
cu
ulli