2

XSD で定義されているデータ型の正規表現はどこにありますか?

XSD 仕様にはデータ型の正規表現が含まれていますが、正しくないようです。たとえばxsd:float、推奨される正規表現は ですが(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|(\+|-)?INF|NaN、これは「0.this is not a float」のような文字列にも一致します。

var floatRegex = /(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|(\+|-)?INF|NaN/;
floatRegex.test("0.this is not a float"); # returns true

XSD 仕様に欠けているものはありますか? XSD データ型の正しい正規表現のソースは他にありますか (たとえば、RegExLib.comにはありません)。

4

1 に答える 1

2

周りに何も許可したくない場合は^、最初と$最後に(グループ化して)追加します:

^( regex )$

var floatRegex = /^((\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|(\+|-)?INF|NaN)$/; 
floatRegex.test("0.this is not a float"); # returns false
于 2012-07-22T13:40:03.120 に答える