我有这个正则表达式模式/^-?+(\d+)?+([\.\,]?\d?+)/。它必须在开始时允许-符号为负值,还允许零值和任何仅带有一个点或逗号的数字。我在https://regex101.com/上对其进行了测试,并且在该处工作正常,但是当我想在我的React项目中使用时,出现此错误,并且不完全知道是什么原因导致了这个问题。


  模块解析失败:无效的正则表达式:/^-?+(\d+)?+([.\,]?\d?+)/:无可重复(22:26)

最佳答案

+是正则表达式中的元字符,它用作量词,如果要字面上匹配+,则需要转义它
[\]-不需要, and .之前的内部字符类


您可以将正则表达式更新为此

^[-+]?(\d+)(?:[.,]?\d+)?$


javascript - 正则表达式Javascript-无效的正则表达式:数字输入无需重复-LMLPHP



let nums = ["-1234", "+1232,1232", "+1234.12342,123"]

nums.forEach(num => {
  console.log(/^[-+]?(\d+)(?:[.,]?\d+)?$/.test(num))
})





Regex Demo

07-24 09:51
查看更多