【发布时间】:2016-02-02 14:19:26
【问题描述】:
我是 XML-Schema-to-JSON-Schema 编译器/转换器的作者。一位用户最近询问是否可以在 JSON Schema 中也支持 xs:pattern。
JSON Schema 确实支持regular expressions,所以理论上这应该是可能的。
但是,这假设 XML Schema 的正则表达式语法和语义与 JavaScript/ECMAScript 兼容。因为如果不是,我可能无法毫不费力地解析一种正则表达式方言并将其翻译成另一种方言。
如果不彻底分析这两个规范,我无法回答这个问题:
所以我想问一下:
XML Schema 正则表达式是否与 JavaScript/ECMAScript 正则表达式兼容?
具体来说,我可以在 JavaScript 中使用 XML Schema 中的有效正则表达式(通过 RegExp 或类似方式)吗?
我读到 XML Schema 正则表达式相当有限,所以希望它们能在更强大的环境中工作,但我很难说这里是否属于这种情况。
我在这里假设 XML Schema 1.0 和 ECMAScript 5.1。
【问题讨论】:
-
它们不兼容。在 XML Shema 中,您可以使用 Unicode 类别类,但不能在 JS(ES5,当前实现)中使用它们。此外,JS 正则表达式不支持字符类减法。此外,
\w、\d和\s速记类可以匹配 Unicode 符号,而在 ES5 中则不能。 ES5 也不支持\i、\l、\c、\C“多字符转义”。 -
@stribizhev 你能把这个作为答案发布吗?
标签: javascript regex xsd ecmascript-5 jsonschema