如何使用JavaScript在string中find一个数字?

假设我有一个string – “你可以input最多500个select”。 我需要从string中提取500

主要问题是string可能会有所不同,如“您可以input最多12500个选项”。 那么如何获得整数部分?

使用正则expression式 。

 var r = /\d+/; var s = "you can enter maximum 500 choices"; alert (s.match(r)); 

expression式\d+表示“一个或多个数字”。 正则expression式默认是贪婪的意思,他们会尽可能地抓住。 另外,这个:

 var r = /\d+/; 

相当于:

 var r = new RegExp("\d+"); 

查看RegExp对象的详细信息 。

以上将抓住第一组数字。 你可以循环查找所有的匹配:

 var r = /\d+/g; var s = "you can enter 333 maximum 500 choices"; var m; while ((m = r.exec(s)) != null) { alert(m[0]); } 

g (全局)标志是这个循环工作的关键。

 var regex = /\d+/g; var string = "you can enter maximum 500 choices"; var matches = string.match(regex); // creates array from matches document.write(matches); 

我喜欢@jesterjunk答案,但是,一个数字并不总是只有数字。 考虑这些数字:“123.5,123,567.789,12233234 + E12”

所以我只是更新了正则expression式:

 var regex = /[\d|,|.|e|E|\+]+/g; var string = "you can enter maximum 5,123.6 choices"; var matches = string.match(regex); // creates array from matches document.write(matches); //5,123.6