我想做以下几点:
myVar = q.match(/[0-9]*\.[0-9]+|[0-9]+/);但是,当我键入十进制时,myVar在输入十进制值之后才会提取小数。
Entered 3, myVar = 3
Entered ., myVar = 3
Entered 3, myVar 3.3我如何在第二步修改它,使myVar等于3?
谢谢。
发布于 2014-11-26 21:24:13
看起来你也想要匹配类似.3的东西,对吗?但是,您必须确保正则表达式本身与小数点不匹配,.。所以你可以做这些交替:
myVar = q.match(/\d+\.\d*|\.?\d+/);\d+\.\d*与3.、3.3、3.33等相匹配。
\.?\d+与.3、.33、3、33等相匹配。
ALTERNATE:,如果您需要允许数千个、数百万个逗号,请使用以下命令:
myVar = q.match(/\d{1,3}(,\d{3})*\.\d*|\d{1,3}(,\d{3})*|\.\d+/);\d{1,3}(,\d{3})*\.\d*与3.、3.3、3.33、3,333.3等相匹配。
\d{1,3}(,\d{3})*与3、33、3,333等相匹配。
\.\d+与.3、.33等相匹配。
发布于 2014-11-26 21:10:58
不要在0-9之后使用+,它意味着1或更多的发生。尝试使用*。应该管用的。
myVar = q.match(/[0-9]*\.[0-9]*|[0-9]*/);可简化为:
myVar = q.match(/[0-9]*\.[0-9]*/);问题是,它正在寻找至少一个号码后的。在您的情况下,您需要0或更多。
https://stackoverflow.com/questions/27158885
复制相似问题