javascript - 如何创建一个正则表达式来验证带有 3 个点或破折号的 id

标签 javascript regex

我只想允许用户输入如下格式的id

1

1.1 or 1-1

1.1.1 or 1-1-1

1.1.1.1 or 1-1-1-1

我编写了以下正则表达式。

/^(\d+(?:-\d+)*$)|(^\d+(?:\.\d+)*$)/

它给了我上面的输出。但问题是它允许无限匹配。但我想要最多 4 个数字(只有 4 个)

1.23.4.551-23-4-55 正确

但是 1.1.1.1.11-1-1-1-121.34.55.5.5.5.5 应该是错误

但我的正则表达式也认为这是正确的

最佳答案

您可以简单地使用

^\d+([.-]\d+){0,3}$

如果您不想混合分隔符,请使用

^\d+((-\d+){0,3}|(\.\d+){0,3})$

关于javascript - 如何创建一个正则表达式来验证带有 3 个点或破折号的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30209209/

相关文章:

javascript - 添加到 iOS 主屏幕后,如何在 PWA 上下载动态生成的 PDF 文件?

javascript - IE - 隐藏和显示输入重新显示输入时不会获得焦点

java - 逃避角色的艰难时光

javascript - typescript :使用 Map<> with strictNullChecks

javascript - AWS Lambda 中的 HTTP GET 只能运行一次

javascript - 无法从父级访问功能 - 从父级向子级发送 Prop

java - 如何用 Java 编写这个 .NET 正则表达式组捕获操作?

java - 如何仅在正则表达式中的显式信号词之后匹配?

python - 从 text() 获取字符串的正则表达式

c++ - 迭代 std::string C++