Javascript正则表达式到XML模式正则表达式
我有这个Javascript模式Javascript正则表达式到XML模式正则表达式,javascript,xml,xsd,Javascript,Xml,Xsd,我有这个Javascript模式 ^(\b[A-Z]\w*(\s|\.)*)+$ 我尝试在XML模式中使用它 <xs:pattern value="^(\b[A-Z][a-z]*(\s|\.)*)+$"> 但是当我验证时,我收到一个错误,说InvalidRegex:Pattern value'^(\b[A-Z][A-Z](\s|”)+$”不是有效的正则表达式。报告的错误是:“当前选项设置不支持此表达式”。 有没有办法让我的Javascript模式处理我的XML模式模式?首先,
^(\b[A-Z]\w*(\s|\.)*)+$
我尝试在XML模式中使用它
<xs:pattern value="^(\b[A-Z][a-z]*(\s|\.)*)+$">
但是当我验证时,我收到一个错误,说InvalidRegex:Pattern value'^(\b[A-Z][A-Z](\s|”)+$”不是有效的正则表达式。报告的错误是:“当前选项设置不支持此表达式”。
有没有办法让我的Javascript模式处理我的XML模式模式?首先,XSD正则表达式隐式地锚定在字符串的末尾,因此您可以(而且必须)省略“^”和“$”两个字符 更难的问题是\b。在方括号外,Javascript中的\b匹配“单词边界”,即ASCII字母和数字序列与非(ASCII字母和数字)序列之间的边界 仔细看,除了确保字符串中至少有一个字符外,我看不出\b对正则表达式的实际贡献。据我所知,你的正则表达式可以简化为
[A-Za-z\s\.]+
并非总是可以将JS正则表达式转换为XSD正则表达式,XSD正则表达式中不支持诸如word boundary、lookaheads等内容,如中所述 基于,您可以编写另一个对XSD有效的正则表达式,例如此正则表达式,用于测试在一个(或多个)空格或点之后,以下字符不应是小写字母
([^\s\.]*([\s\.]+[^a-z])?)*[\s\.]*
据介绍,它不支持“^”和$anchors。