这里是整个错误:
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})'
我使用过的每个在线检查器都说该值应该有效。有什么想法吗?
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}))$/
请注意正则表达式文字表示法,不应用任何引号引起来。