在哪里可以找到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没有它们?)
答案 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