【发布时间】:2012-09-24 17:01:28
【问题描述】:
我有一个自定义正则表达式,用于检测整数、分数和浮点数。
var regEx = new RegExp("^((^[1-9]|(0\.)|(\.))([0-9]+)?((\s|\.)[0-9]+(/[0-9])?)?)$");
var quantity = 'd';
var matched = quantity.match(regEx);
alert(matched);
(代码也可以在这里找到:http://jsfiddle.net/aNb3L/。)
问题是它匹配单个字母,我不知道为什么。但是对于更多的字母它会失败(这很好)。
免责声明:我是正则表达式的新手,尽管在 http://gskinner.com/RegExr/ 中它不匹配单个字母
【问题讨论】:
-
我不明白
/[0-9]的最后部分是什么。我猜这是您想要自己的识别器的部分原因。 -
您需要转义字符串文字中的
\字符。如果要在正则表达式中使用\字符,则需要在字符串文字中将其写为'\\'。这意味着将\字符与您需要使用'\\\\'的正则表达式匹配。 -
你是否需要用指数符号来处理浮点数,例如
1.23e12?
标签: javascript regex