在xml中,我有一个标签说 <membercode>
当前字段的正则表达式模式为 <xs:pattern value="[a-zA-Z0-9\s]{1,3}" />
成员代码必须接受以下值:
1) "XY" -> pass
2) "XY " -> pass
3) " " -> i need to have this failed. but it is getting passed.
4) " XY " -> need to be failed
编辑:要求:
1)允许的字符总数不得超过3。
2)在允许的3个字符中,可以有空格。前任:"XY", "XY "," XY" , "X "
3)但是,如果总字符数超过3,或者如果只有空格(没有字母数字字符),则不应允许。
尝试使用whitespace折叠属性,但是在这种情况下,折叠完成后会应用maxlength。因此也可以使用大于最大长度的值。
因此尝试下面的东西。
<xs:pattern value="[a-zA-Z0-9]{1,3}[\s?]" />
<xs:pattern value="[a-zA-Z0-9]{1,3}|[a-zA-Z0-9\s?]{1,3}" />
但无法掌握正确的解决方案。
请为此指出正确的方法。
非常感谢您的建议!
使用<xs:whiteSpace>
限制,您走在正确的轨道上,但是该值应preserve
为不修改原始空格的值。
您可以使用以下模式:
[\w\d ]*[\w\d][\w\d ]*
中央([\w\d]
)表示必须出现一个字母或数字。在该强制字母数字字符之前和之后,字符串可以选择具有任何字母/数字/空格组合([\w\d ]*
)。限制条件,<xs:whiteSpace>
并<xs:maxLength>
确保长度不超过3个字符串(包括原始空格)。
<xs:element name="elem">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="preserve"/>
<xs:maxLength value="3"/>
<xs:pattern value="[\w\d ]*[\w\d][\w\d ]*"></xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:element>
请注意,如果您不希望也包含下划线字符,则可以更改\w
为。a-zA-Z
\w
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句