如何使用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