我知道那里有一百万个正则表达式的问题,我向你保证我已经阅读了一百万个这样的问题!这只是那些不适合我的事情之一。我试图提取价格编号(小数或非小数)和项目名称(价格编号和< br />之间的所有内容)
输入:
var content = "$22 M Uniform <br/>"
或类似的东西
var content = "$39 Day / Evening Class Tuition <br/>"
或
var content = "$12.8 Weekend Class Payment <br/>"
我的代码:
var itemprice = content.match(/(\d+)(d*(\.\d{1,2}))/);
var itemname = content.match(/(\s)(.*?)</);
我的问题:
我的itemname
正常工作并正常返回,但是当我调试它时,我的号码搜索器似乎无法在浏览器中工作itemprice
设置为空。这很奇怪,因为当我在这里尝试代码http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_regexp_i时,它可以正常工作,提取数字。
对于网站,我的代码如下:
var str = "$39.56 Day / Evening Class Tuition <br>";
var patt1 =/(\d+)(d*(\.\d{1,2}))/;
var matches = str.match(patt1)
alert(matches[0]);
答案 0 :(得分:2)
带有可选点的简单十进制正则表达式是
/\d+(\.\d{1,2})?/
在这里演示 - http://jsfiddle.net/JXdbg/2/
对于美元符号货币检测,我会在其前面添加$
/\$\d+(\.\d{1,2})?/