【发布时间】:2020-04-03 17:05:54
【问题描述】:
我想确保用户不要填写他们的用户名(模式是大写或小写的 u,后跟 7-10 位数字:U0000000)
在以下示例中,正则表达式本身确实有效。但是与.matches() 方法结合使用时,它不会验证该字段。
const schema = Yup.object()
.shape({
myField: Yup.string()
.matches(/.*\d/, 'Should contain a digit') // <- this works
.matches(/(?!.*[uU]\d{7,10})/, 'Should not contain a user ID') // <- this does not
});
【问题讨论】:
-
@WiktorStribiżew 这更像是一个 Yup 模式问题。正则表达式模式在架构之外也能正常工作。
-
/^(?!.*[uU]\d{7,10})/或/^(?!.*[uU]\d{7,10}).*/不起作用吗? -
是和不是。是的,这会过滤掉用户ID。否:它不能与 .matches() 方法一起使用。但一段时间后我找到了答案。如果您再次打开此问题,我可以添加它。
-
我还编辑了问题以使其更清楚,因为它似乎不清楚。
-
好的,请发布答案。
标签: javascript regex yup