0

我知道那里有一百万个正则表达式问题,我向你保证我已经阅读了其中一百万个 -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)(.*?)</);

我的问题:

我的工作正常并正确返回,但是当我调试它设置为 nullitemname时,我的号码搜索器似乎无法在浏览器中工作。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]);
4

1 回答 1

2

带有可选点的简单十进制正则表达式是

/\d+(\.\d{1,2})?/

在这里演示 - http://jsfiddle.net/JXdbg/2/

对于美元符号货币检测,我会在前面加上$

/\$\d+(\.\d{1,2})?/
于 2012-11-16T03:32:49.437 回答