正则表达式 /[1-9]d*$/ 匹配以数字 1 至 9 开头,后跟任意数量数字的正整数。
然而,对于输入 “-1″,它意外地返回 true。这是因为该表达式会匹配字符串中的数字部分,而忽略前导的负号。
具体而言,正则表达式 /[1-9]d*$/ 会成功匹配 “-1” 中的数字 “1”。虽然这符合表达式的模式,但它忽略了前导的负号,导致误报。
为了使表达式仅匹配正整数,需要在开头添加锚点符号 “^”,即 “^[1-9]d*$”。锚点符号确保表达式从字符串开头进行匹配,从而排除以负号开头的字符串。