XML Schema正则表达式是否与JavaScript / ECMAScript正则表达式兼容?

时间:2015-11-02 16:13:06

标签: javascript regex xsd ecmascript-5 jsonschema

我是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。

1 个答案:

答案 0 :(得分:2)

ES5和XML Schema正则表达式语法不兼容。

在XML Shema中,您可以使用Unicode类别类(称为category escapes),但您无法在JavaScript ES5中使用它们。

此外,JavaScript正则表达式不支持character class subtraction

此外,\w\d\s速记类可以匹配Unicode符号,而在ES5中它们则不匹配。 ES5也不支持\i\l\c\C "multi-character escapes"