我知道那里有一百万个正则表达式问题,我向你保证我已经阅读了其中一百万个 -1!这只是不适合我的事情之一。我正在尝试提取价格数字(是否为小数)和商品名称(价格数字和 < 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]);
最佳答案
带有可选点的简单十进制正则表达式是
/\d+(\.\d{1,2})?/
此处演示 - http://jsfiddle.net/JXdbg/2/
对于美元符号货币检测,我会在其前面加上 $
/\$\d+(\.\d{1,2})?/
关于javascript - 正则表达式无法正常工作,不应该返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13409939/