【问题标题】:Regex expression that matches if the string contain only spaces?如果字符串仅包含空格,则匹配的正则表达式?
【发布时间】:2020-08-30 00:50:25
【问题描述】:

我正在使用 formikyup 来验证表单。在一个输入中,如果它仅包含空格,则它通过,这对我的用例无效。所以我通过谷歌找到了某种正则表达式,所以如果字符串只有空格,它会抛出一些消息,但我什么也没找到。

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


【解决方案1】:

.matches(/^(\S+$)/, '* This field cannot contain only blankspaces') 也为我工作。

标记大写S,而不是小写s

【讨论】:

    【解决方案2】:

    你可以使用

    /^(?!\s+$).*/
    /^(?!\s+$)/
    /^\s*\S.*$/
    /^\s*\S[^]*$/
    /^\s*\S[\s\S]*$/
    

    前两个正则表达式将匹配任何不等于 1 个或多个空格的字符串。

    最后第三、第四和第五个匹配一个至少包含一个非空白字符的字符串。

    regex demo

    详情

    • ^ - 字符串开头
    • (?!\s+$) - 如果当前位置右侧有 1 个或多个空格和字符串结尾,则匹配失败
    • .* - 除了换行符之外,0 个或更多字符,尽可能多
    • \s*\S.* - 零个或多个空格、一个非空格,然后是除换行符以外的任何零个或多个字符
    • \s*\S[^]* / \s*\S[\s\S]* - 与上面相同,但包括换行符在内的任何字符都可以出现在非空白字符之后
    • $ - 字符串结束

    【讨论】:

    • 非常感谢!完美答案
    【解决方案3】:

    如果您想匹配以防出现任何空白,请尝试:

    nome: string()
          .min(3, '* Deve conter no mínimo 3 caracteres')
          .required('* Este campo é obrigatório')
          .matches(/^(\s+$)/g, '* This field cannot contain only blankspaces'),
    

    【讨论】:

    • 对不起,我弄错了错误信息,如果该字段只有空格,那么它是无效的
    • .matches(/^(\S+$)/, '* This field cannot contain only blankspaces') 这对我有用,谢谢!
    • 我很高兴它对你有用 :) 请不要忘记为答案投票和/或选择它作为最终答案。
    猜你喜欢
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多