cvc-pattern-valid:相对于模式,值不是多面有效

问题描述 投票:0回答:1

这里是整个错误:

cvc-pattern-valid: Value '03151364512' is not facet-valid with respect to pattern '((((\+011)|(011))[-]?)?(599)((416)|(717)|(318))[0-9]{4})|(((085)|(088))[-]?[0-9]{7})([,][1-9][0-9]{1,8})?|((((\+31)|(0)|(0031))[1-9][0-9]{2})[-]?([1-9][0-9]{5}))([,][1-9][0-9]{1,8})?|((((\+31)|(0)|(0031))[1-9][0-9])[-]?([1-9][0-9]{6}))([,][1-9][0-9]{1,8})?|(((14)[-]?)(0)([1-9][0-9]{1,2}))|((((\+31)|(0)|(0031))6){1}[-]?[1-9]{1}[0-9]{7})|\+(1\d{4,14}|2[078]\d{3,13}|3[0-469]\d{3,13}|4[013-9]\d{3,13}|5[1-9]\d{3,13}|6[0-6]\d{3,13}|7\d{4,14}|8[1-469]\d{3,13}|9[0-58]\d{3,13}|[2-9]\d{4,14})'

我使用过的每个在线检查器都说该值应该有效。有什么想法吗?

regex xml xsd
1个回答
0
投票

XSD对整个字符串使用should match模式。

因此,从上一个03151364512 2开始,模式与预期的is not matched不符。

您应该修复Angular验证,以禁止使用部分字符串匹配

/^(?:(\+?011-?)?599(416|717|318)[0-9]{4}|08[58]-?[0-9]{7}(,[1-9][0-9]{1,8})?|(\+31|0|0031)[1-9][0-9]{2}-?[1-9][0-9]{5}(,[1-9][0-9]{1,8})?|(\+31|0|0031)[1-9][0-9]-?[1-9][0-9]{6}(,[1-9][0-9]{1,8})?|14-?0[1-9][0-9]{1,2}|(\+31|0|0031)6-?[1-9][0-9]{7}|\+(1\d{4,14}|2[078]\d{3,13}|3[0-469]\d{3,13}|4[013-9]\d{3,13}|5[1-9]\d{3,13}|6[0-6]\d{3,13}|7\d{4,14}|8[1-469]\d{3,13}|9[0-58]\d{3,13}|[2-9]\d{4,14}))$/

请注意正则表达式文字表示法,不应用任何引号引起来。

© www.soinside.com 2019 - 2024. All rights reserved.