Xml 模式正则表达式不允许单独使用空格
Xml schema regex to not allow white spaces alone
在 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 个或只有空格(没有字母数字字符)则不应允许。
尝试过空白折叠 属性,但在那种情况下,最大长度是在折叠完成后应用的。
因此也允许超过最大长度的值。
因此尝试了下面的东西..
<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}" />
但无法找到正确的解决方案。
请指出正确的方法..
非常感谢您的建议!
这应该有效:
[a-zA-Z0-9][a-zA-Z0-9\s]{1,2}
[\w\d][\w\d\s]{1,2} equivalent
这对你有帮助吗?
\s?[\w\d]{1,3}\s?
您使用 <xs:whiteSpace>
限制是正确的,但该值应该是 preserve
以便不修改原始空格。
您可以使用这个模式:
[\w\d ]*[\w\d][\w\d ]*
中心部分([\w\d]
)说必须出现一个字母或数字。在该强制性字母数字字符之前和之后,该字符串可以选择具有任何 letter/digit/space 组合 ([\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
中也包含的下划线字符,可以将 \w
更改为 a-zA-Z
。
在 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 个或只有空格(没有字母数字字符)则不应允许。
尝试过空白折叠 属性,但在那种情况下,最大长度是在折叠完成后应用的。 因此也允许超过最大长度的值。
因此尝试了下面的东西..
<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}" />
但无法找到正确的解决方案。
请指出正确的方法..
非常感谢您的建议!
这应该有效:
[a-zA-Z0-9][a-zA-Z0-9\s]{1,2}
[\w\d][\w\d\s]{1,2} equivalent
这对你有帮助吗?
\s?[\w\d]{1,3}\s?
您使用 <xs:whiteSpace>
限制是正确的,但该值应该是 preserve
以便不修改原始空格。
您可以使用这个模式:
[\w\d ]*[\w\d][\w\d ]*
中心部分([\w\d]
)说必须出现一个字母或数字。在该强制性字母数字字符之前和之后,该字符串可以选择具有任何 letter/digit/space 组合 ([\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
中也包含的下划线字符,可以将 \w
更改为 a-zA-Z
。