【问题标题】:regex not repeating dot character javascript正则表达式不重复点字符javascript
【发布时间】:2018-06-14 23:51:17
【问题描述】:

我在 javascript ^[a-zA-Z0-9.]+([.][a-zA-Z0-9]+)$ 中提出了我的正则表达式,我试图过滤掉字符串。

  • 开头和结尾都没有点字符
  • 点字符可以是其他字母或数字的中间
  • 如果点字符不能出现超过两次

这些是我预期的通过案例

  • foo.bar
  • f.o.o
  • foo.bar.foo
  • fo.123.321

这些是我预期的不通过案例

  • .foo
  • .foo.
  • 富。
  • foo..bar
  • .foo.bar

我觉得我很接近(或根本不接近)。如何过滤掉点重复的点字符?提前致谢!

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    我想这就是你要找的东西:

    /^([a-zA-Z0-9]+\.)+([a-zA-Z0-9]+)$/
    

    测试

    预期通过案例

    /^([a-zA-Z0-9]+\.)+([a-zA-Z0-9]+)$/.test('foo.bar') // true
    /^([a-zA-Z0-9]+\.)+([a-zA-Z0-9]+)$/.test('f.o.o') // true
    /^([a-zA-Z0-9]+\.)+([a-zA-Z0-9]+)$/.test('foo.bar.foo') // true
    /^([a-zA-Z0-9]+\.)+([a-zA-Z0-9]+)$/.test('fo.123.321') // true
    

    预期的不通过案例

    /^([a-zA-Z0-9]+\.)+([a-zA-Z0-9]+)$/.test('.foo') // false
    /^([a-zA-Z0-9]+\.)+([a-zA-Z0-9]+)$/.test('.foo.') // false
    /^([a-zA-Z0-9]+\.)+([a-zA-Z0-9]+)$/.test('foo.') // false
    /^([a-zA-Z0-9]+\.)+([a-zA-Z0-9]+)$/.test('foo..bar') // false
    /^([a-zA-Z0-9]+\.)+([a-zA-Z0-9]+)$/.test('.foo.bar') // false
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-25
      • 2016-06-13
      • 2017-01-12
      • 2021-01-04
      • 1970-01-01
      • 2020-08-23
      相关资源
      最近更新 更多