我的正则表达式有什么问题?为什么?

时间:2014-09-08 16:20:58

标签: javascript regex

以下正则表达式:

var number = /^(\+|\-|)(\d+\.|\.\d+|\d+|\d+.\d+)((e\+|e\-|e)\d+)?$/i;

错误地接受1+11f5这些不是真正的JavasScript数字。

我试图制作一个正则表达式,而#34;只匹配JavaScript样式的数字。它必须在数字前面支持可选的减号或加号,小数点和指数符号-5e-3或1E10-再次在指数前面加上可选符号。另请注意,点之前或之后不需要数字,但数字不能单独作为点。也就是说,.5和5.是有效的JavaScript数字,但不是一个点。"

2 个答案:

答案 0 :(得分:3)

你离开了一个.未转义的人。确保所有人都有反斜杠。

答案 1 :(得分:2)

您需要通过.转义正则表达式中的\。此外,您需要通过+转义正则表达式中的所有\

请参阅this演示。