javascript - 解释这个正则表达式 js

标签 javascript regex

我正在使用这个正则表达式来匹配一些字符串:

^([^\s](-)?(\d+)?(\.)?(\d+)?)$/

我很困惑为什么允许输入两个点,比如 ..

我的理解是只允许放 1 个破折号或不放 (-)? 任何没有限制或没有限制的数字 (\d+)? 一个点或一个点 (\.)?

为什么允许放置 .. 甚至 .4.6

测试在 http://www.regextester.com/ 中完成

最佳答案

[^\s] 表示任何不是空格的内容。这包括点。尝试匹配 .. 会让你:

  1. [^\s] 匹配 .
  2. (-)? 不匹配
  3. (\d+)? 不匹配
  4. (\.)? 匹配 .
  5. (\d+)? 不匹配


我假设您想匹配数字(可能是负数/ float 数):

^-?\d+(\.\d+)?$

关于javascript - 解释这个正则表达式 js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944262/

相关文章:

javascript - 什么是 javascript 事件委托(delegate)以及如何让我的 js 保持干燥?

javascript - 使用 Linux/Windows CLI 行工具模拟 JavaScript 按钮单击(http 请求)

regex - 验证Active Directory默认密码复杂性的正则表达式

java - IP 和字符串的正则表达式

c++ - 正则表达式库在 C++ 中无法正常工作

regex - 是否有支持 PCRE 的 subRegex 版本?

javascript - jspdf.addHTML 抛出错误

javascript - 组织数组中的元素

javascript - 用于 JVM 和 JavaScript 的 headless 单源库

java - 如何将字符串拆分为标记?