我有这个正则表达式模式/^-?+(\d+)?+([\.\,]?\d?+)/
。它必须在开始时允许-
符号为负值,还允许零值和任何仅带有一个点或逗号的数字。我在https://regex101.com/上对其进行了测试,并且在该处工作正常,但是当我想在我的React项目中使用时,出现此错误,并且不完全知道是什么原因导致了这个问题。
模块解析失败:无效的正则表达式:/^-?+(\d+)?+([.\,]?\d?+)/:无可重复(22:26)
最佳答案
+
是正则表达式中的元字符,它用作量词,如果要字面上匹配+
,则需要转义它[\]
-不需要, and .
之前的内部字符类
您可以将正则表达式更新为此
^[-+]?(\d+)(?:[.,]?\d+)?$
let nums = ["-1234", "+1232,1232", "+1234.12342,123"]
nums.forEach(num => {
console.log(/^[-+]?(\d+)(?:[.,]?\d+)?$/.test(num))
})
Regex Demo