我写的小部件程序是为了从彭博网站获得白银价格或金价 这些是脚本的一部分:
function getPrice() {
var url = new URL();
url.location = "http://www.bloomberg.com/markets/commodities/futures/";
url.fetchAsync(PriceReturn);
}
function PriceReturn(url) {
var resultStr = url.result;
var subCheck = resultStr.substring(resultStr.indexOf("SILVER"));
foundStr = subCheck.match("[0-9]+\.[0-9]+");
setPrice(parseFloat(foundStr).toFixed(2));
}
我可以得到Silver的价格(比如现在说27.30),但是当我想检查黄金价格(.indexOf("GOLD")
)时(现在就说1,585.60)
获得该价格的subcheck.match()
脚本是什么?
答案 0 :(得分:2)
您的问题是[0-9]+\.[0-9]+
与1,585.60
之类的数字不匹配。正确的正则表达式是:
/\d{1,3}(?:,\d{3})*\.\d{2}/
这将格式化的数字与两位小数相匹配。
答案 1 :(得分:0)
我认为te模式应该是这样的:
/\d+(\,\d+)?\.\d{1,3}/