XML 模式正则表达式与 JavaScript/ECMAScript 正则表达式兼容吗?

Are XML Schema regular expressions compatible to JavaScript/ECMAScript regular expressions?

我是 XML-Schema-to-JSON-Schema compiler/transformer 的作者。一位用户最近询问是否可以在 JSON 模式中也支持 xs:pattern

JSON Schema 确实支持 regular expressions 所以理论上这应该是可能的。

但是,这假定 XML 架构的正则表达式语法和语义与 JavaScript/ECMAScript 的兼容。因为如果它们不是,我可能无法毫不费力地将一种正则表达式方言解析和翻译成另一种方言。

如果不对这两个规范进行全面分析,我无法回答这个问题:

所以我想问一下:

XML 架构正则表达式与 JavaScript/ECMAScript 正则表达式兼容吗?

具体来说,我可以在 JavaScript 中使用来自 XML 架构的有效正则表达式(通过 RegExp 或类似方式)吗?

我读到 XML 架构正则表达式相当有限,因此希望它们能在更强大的环境中工作,但我很难说这里是否属于这种情况。

我将在此处假设 XML Schema 1.0 和 ECMAScript 5.1。

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

在XML Shema中,可以使用Unicode类别类(简称category escapes),在JavaScript ES5中不能使用

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

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