【发布时间】:2020-08-30 00:50:25
【问题描述】:
我正在使用 formik 和 yup 来验证表单。在一个输入中,如果它仅包含空格,则它通过,这对我的用例无效。所以我通过谷歌找到了某种正则表达式,所以如果字符串只有空格,它会抛出一些消息,但我什么也没找到。
nome: string()
.min(3, '* Deve conter no mínimo 3 caracteres')
.required('* Este campo é obrigatório')
.matches(/[^\s*].*[^\s*]/g, '* This field cannot contain only blankspaces'),
这样做的问题是,当它达到 3 个字符时,即使需要 yup 条件,验证也不起作用,并且与正则表达式匹配不会阻止空格。到目前为止,我设法解决了:
nome: values.nome.trim().replace(/\s+/g, ' ') 但是使用正确的正则表达式我可以实时抛出错误。
【问题讨论】:
-
如果您需要匹配没有空格的整个字符串,请尝试
/^\S+$/ -
请提供输入/输出示例
-
某种 :
space.next === someCaracter ? valid : notValid逻辑和这个“下一个空格”会被一些正则表达式查看 -
您是否只是确保该字段不包含任何空格?在这种情况下,为什么不简单地匹配 \s+ ?
-
@WiktorStribiżew 如果整个字符串没有空格,但如果我想要一些例子,它会起作用:fullname= Alex martines ?
标签: javascript regex reactjs formik yup