我有这个 Javascript 模式
^(\b[A-Z]\w*(\s|\.)*)+$
我尝试在我的 XML Schema 上使用它
<xs:pattern value="^(\b[A-Z][a-z]*(\s|\.)*)+$">
但是当我验证时我收到一条错误消息说 InvalidRegex: Pattern value '^(\b[A-Z][a-z](\s|.))+$' is not a有效的正则表达式。报告的错误是:“当前选项设置不支持此表达式。”。
有没有办法让我的 Javascript 模式适用于我的 XML 模式模式?
最佳答案
并非总是可以将 JS 正则表达式转换为 XSD 正则表达式,XSD 正则表达式不支持字边界、先行等某些内容,如 Michael Kay answer 中所述。 .
基于 your other question asking for a regex to test that all words starts with an uppercase character ,您可以编写另一个对 XSD 有效的正则表达式,例如这个,它测试一个(或多个)空格或点后面的字符不应该是小写字母。
([^\s\.]*([\s\.]+[^a-z])?)*[\s\.]*
关于Javascript 正则表达式到 XML 模式正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37131767/