java 脚本 string.match() 没有按预期工作

java script string.match() doesn't work as expected

我正在尝试将字符串与正则表达式匹配,如下所示。 Jsfiddle returns 符合预期的具有匹配字符串的数组。但是如果我在浏览器控制台中 运行 下面的语句,它 returns 为空。我在 ie11,Chrome,Mozilla 中试过。谁能解释为什么会出现这种差异?我是不是漏了什么。

"201458".match(/^20['^\s']{4,}$|^$/)

不应该匹配。您正在寻找 20 后跟四个或更多撇号、脱字符或空白字符(后跟字符串结尾); 1 是其中的 none。

  • ['^] 是 "apostrophe or caret".
  • [^'] 是 "not apostrophe".

Caret 仅在 at start 字符 class 时才有其特殊功能;撇号在正则表达式中没有任何特殊功能。

如果你发现这个在js中匹配fiddle,请link所述fiddle;我会很惊讶的。