2012-07-22 50 views
2

在哪裏可以找到XSD中定義的數據類型的正則表達式?XSD數據類型的正則表達式

XSD specification包含數據類型的正則表達式,但它們似乎不正確。例如,對於xsd:float建議的正則表達式(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|(\+|-)?INF|NaN,然而,即使相匹配的字符串,如「0.this是不是一個浮動」:

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沒有它們)?

回答

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 
+0

是的,我忘了錨正則表達式。 – 2012-07-22 13:46:10

+0

但是,您應該更改代碼段中的註釋,因爲正則表達式測試返回false與錨定正則表達式。 – 2012-07-22 13:59:10

+0

@jindrichm - 當然,謝謝...這是從你的問題複製/粘貼 - 現在它說*虛假* – 2012-07-22 14:16:36