「(紐約訊)美國股市指數期貨華爾街小幅反彈,週三,隨着期貨對於S &普500上漲0.34%,道瓊斯指數上漲0.12%,納斯達克100指數上漲0.51%,格林威治時間0921。「
輸出應該是所有數字的數組,包括浮點數。
有點類似thread但它只提取一個數字。
「(紐約訊)美國股市指數期貨華爾街小幅反彈,週三,隨着期貨對於S &普500上漲0.34%,道瓊斯指數上漲0.12%,納斯達克100指數上漲0.51%,格林威治時間0921。「
輸出應該是所有數字的數組,包括浮點數。
有點類似thread但它只提取一個數字。
這應該這樣做:
var text = "NEW YORK (Reuters) U.S. stock index futures pointed to a slight rebound on Wall Street on Wednesday, with futures for the S&P 500 up 0.34 percent, Dow Jones futures up 0.12 percent and Nasdaq 100 futures up 0.51 percent at 0921 GMT.";
console.log(text.match(/(\d[\d\.]*)/g));
可以例如過濾掉無效的電話號碼55.55.55
用下面的代碼:
var numbers = [];
text.replace(/(\d[\d\.]*)/g, function(x) { var n = Number(x); if (x == n) { numbers.push(x); } })
這個正則表達式應該工作:
/[-+]?[0-9]*\.?[0-9]+/g
測試:
"NEW YORK (Reuters) U.S. stock index futures pointed to a slight rebound on Wall Street on Wednesday, with futures for the S&P 500 up 0.34 percent, Dow Jones futures up 0.12 percent and Nasdaq 100 futures up 0.51 percent at 0921 GMT.".match(/[-+]?[0-9]*\.?[0-9]+/g)
返回此Array:
["500", "0.34", "0.12", "100", "0.51", "0921"]
您的解決方案將失敗:例如「123.45.67 .56」 – 2010-10-20 11:49:13
取決於你的意思是「失敗」。它會返回'[「123.45」,「.67」,「.56」]'。 「123.45.67」不是浮動。你可能會說它會失敗100萬或1,000,000 - 這取決於你需要什麼。 – Matt 2010-10-20 12:44:07
這是我用過的。謝謝 – 2017-09-27 16:16:23
正則表達式是要走的路數 – Onkelborg 2010-10-20 11:30:42