XSD数据类型的正则表达式

时间:2012-07-22 13:31:03

标签: regex validation xsd

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

XSD specification包含数据类型的正则表达式,但它们似乎不正确。例如,对于xsd:float,建议的正则表达式为(\+|-)?([0-9]+(\.[0-9]*)?|\.[0-9]+)([Ee](\+|-)?[0-9]+)?|(\+|-)?INF|NaN,但是,它甚至匹配“0.这不是浮点数”等字符串:

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没有它们?)

1 个答案:

答案 0 :(得分: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