2012-03-26 3 views
2
var STRIP_PHN_REG_EX = /[\x\X\(\)\.\-\s\',]/g; 

Visual Studio gibt die folgenden nicht sehr detaillierte Warnung: „Syntaxfehler in regulärem Ausdruck“Was ist mit der Syntax dieses regulären Ausdrucks, vor dem Visual Studio warnt?

jedoch der reguläre Ausdruck fein läuft. Was fehlt mir hier?

+1

Welche Syntaxfehlerwarnung? – BoltClock

+2

Ich glaube nicht, dass Sie so viele Backslashes brauchen ... ".", "(", ")", Das ist gut in '[...]' Teilausdrücken. – Pointy

Antwort

4

\x und \X sind hier nicht gültig. \x kann mit zwei hexadezimalen Ziffern verwendet werden, um ein bestimmtes Zeichen zu identifizieren — zum Beispiel, \x09 bedeutet das Tab-Zeichen (\t) —, aber Sie verwenden es nicht hier so; und \X hat keine verwendet in JavaScript Regexes.

Aber da ich nicht sagen kann, was Sie wollen die Regex zu tun, kann ich Ihnen nicht sagen, wie Sie es beheben. Vielleicht meintest du nur

var STRIP_PHN_REG_EX = /[xX().\-\s',]/g; 

? (Das entspricht ein beliebiges Leerzeichen sowie ein x, X, (, ), ., -, ', ,.)


Edited hinzufügen: Oder vielleicht von \x und \X Sie gemeint "Kleinbuchstabe Ziffer" und "Großbuchstabe Ziffer"? Es gibt keine spezielle Syntax dafür in JavaScript, aber Sie können schreiben:

var STRIP_PHN_REG_EX = /[0-9a-fA-F().\-\s',]/g; 
Verwandte Themen