是的正则表达式匹配器
Yup regex matcher
我正在努力使用 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 的 "Name is not valid" 错误。
"Tester 1"
应该通过,"Tester!% 2"
应该失败
我该如何解决这个问题?
你的表达与你需要的相反。那是因为你的角色 class 以否定运算符开头:[^x]
意味着除了 x.
从你的角色中删除否定 class 应该有效。
/^[a-zA-Z0-9 ]+$/
请记住,您的表达式需要特定的拉丁字母子集 (a-z),并且将无法匹配 François
例如。
我正在努力使用 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 的 "Name is not valid" 错误。
"Tester 1"
应该通过,"Tester!% 2"
应该失败
我该如何解决这个问题?
你的表达与你需要的相反。那是因为你的角色 class 以否定运算符开头:[^x]
意味着除了 x.
从你的角色中删除否定 class 应该有效。
/^[a-zA-Z0-9 ]+$/
请记住,您的表达式需要特定的拉丁字母子集 (a-z),并且将无法匹配 François
例如。