以下正则表达式:
var number = /^(\+|\-|)(\d+\.|\.\d+|\d+|\d+.\d+)((e\+|e\-|e)\d+)?$/i;
错误地接受1+1
和1f5
这些不是真正的JavasScript数字。
我试图制作一个正则表达式,而#34;只匹配JavaScript样式的数字。它必须在数字前面支持可选的减号或加号,小数点和指数符号-5e-3或1E10-再次在指数前面加上可选符号。另请注意,点之前或之后不需要数字,但数字不能单独作为点。也就是说,.5和5.是有效的JavaScript数字,但不是一个点。"
答案 0 :(得分:3)
你离开了一个.
未转义的人。确保所有人都有反斜杠。
答案 1 :(得分:2)
您需要通过.
转义正则表达式中的\
。此外,您需要通过+
转义正则表达式中的所有\
。
请参阅this演示。