2

在哪里可以找到 XSD 中定义的数据类型的正则表达式?

XSD 规范包括数据类型的正则表达式,但它们似乎并不正确。例如,对于xsd:float建议的正则表达式 is (\+|-)?([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 回答