javascript - XML Schema 正则表达式与 JavaScript/ECMAScript 正则表达式兼容吗?

标签 javascript regex xsd ecmascript-5 jsonschema

我是 XML-Schema-to-JSON-Schema 编译器/转换器的作者。最近,一位用户询问是否可以在 JSON 架构中支持 xs:pattern

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

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

如果没有对这两个规范进行彻底分析,我就无法回答这个问题:

所以我想问:

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

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

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

这里我假设使用 XML Schema 1.0 和 ECMAScript 5.1。

最佳答案

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

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

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

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

关于javascript - XML Schema 正则表达式与 JavaScript/ECMAScript 正则表达式兼容吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33482031/

相关文章:

r - 我能合理拆分这些数字串吗?

java - SonarQube 抛出 '' NullPointer 异常可能会抛出“对于从 xsd 文件在 java 文件中创建的变量的错误”

javascript - 尝试使用模拟器测试 Firestore 安全规则时总是出现超时错误

javascript - 如何从jquery中的另一个对象访问一个对象中声明的变量

regex - Delphi - 如何从字符串中提取数字?

xml - 如果类型等于类型或从类型派生,如何检查 xPath

c# - 对错误消息 "invalid XPath for selector or field"感到困惑

javascript - nodejs execFile 回调参数 "stdout"的最大长度是多少?

javascript - 无法将数据传递到 Material 对话框 - Angular2+

c - 扩展正则表达式是否支持反向引用?