【问题标题】:regex is failing for version numbers正则表达式对于版本号失败
【发布时间】:2019-12-06 00:51:21
【问题描述】:

我使用下面的正则表达式允许我输入字母、数字、特殊字符,并且不应允许整个单词的尾随和前导空格

不允许的模式:

(space)text(space),

(space)this text is having trailing and leading space(space)

对于上述情况,我正在使用此正则表达式模式 /^(?! )[A-Za-z0-9 ]*(?<! )$/,但此条目失败 - v1.3

 rules: [
          {
            required: true,
            pattern: /^(?! )[A-Za-z0-9 ]*(?<! )$/,
            message: 'Please enter valid version value',
          },

谁能建议我如何通过正则表达式,以便我能够输入带有版本的数据,同时也希望满足上述条件。我正在使用反应 JS

提前致谢

【问题讨论】:

  • 这不是有效的 javascript 正则表达式 - 至少不是在所有浏览器中
  • . 导致它失败,我认为这可以解决问题:^(?! )[A-Za-z0-9\.]*(?&lt;! )$
  • @MattCarlotta 您的正则表达式对于#2.3 失败
  • "字母、数字、特殊字符" ...所以 a-z、A-Z、0-9 和空格是您的正则表达式所允许的全部......"A-Za-z0-9 " - 没有“特殊字符”在那
  • @EnigmaState 然后你需要添加特殊字符:regex101.com/r/EhOY2s/3

标签: javascript regex reactjs


【解决方案1】:

您可以只对前导空格使用负前瞻,后跟任意数量的字符和尾随空格:

^(?! .* $)

Demo on regex101

【讨论】:

    【解决方案2】:

    您需要在您的正则表达式模式中允许. 用于空格之间。

    这个正则表达式应该可以工作

    ^(?! )[A-Za-z0-9 \.]*(?&lt;! )$

    我添加了\. 以允许. 字符。

    RegExr example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      • 2010-09-10
      • 1970-01-01
      • 2013-06-07
      • 2019-11-09
      • 1970-01-01
      • 2019-05-11
      相关资源
      最近更新 更多