是的正则表达式匹配器



我正在努力使用 Yup 创建一个成功的正则表达式。我想验证一个字符串,它只接受字母、数字和空格。任何其他字符都会使整个字符串无效。这是我的代码:

const nameRegex = /^[^a-zA-Z0-9 ]+$/g;
export const Schema = Yup.object().shape({
name: Yup.string()
.required('Name is Required')
.matches(nameRegex, 'Name is not valid')
});

无论我使用什么字符串,我都会收到来自 Yup 的"名称无效"错误。

"Tester 1"应该通过,"Tester!% 2"应该失败

我该如何解决这个问题?

您拥有的表达式与您需要的表达式相反。这是因为您的字符类以否定运算符开头:[^x]表示除 x 以外的任何内容。

从字符类中删除否定应该有效。

/^[a-zA-Z0-9 ]+$/

请记住,您的表达式需要特定的拉丁字母子集 (a-z(,并且无法匹配François例如。

相关内容

  • 没有找到相关文章

最新更新