如何使用JavaScript在字符串中查找数字?

时间:2009-10-26 05:26:36

标签: javascript regex

假设我有一个字符串 - “你可以输入最多500个选项”。 我需要从字符串中提取500

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

8 个答案:

答案 0 :(得分:87)

使用regular expression

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

表达式\d+表示“一个或多个数字”。默认情况下,正则表达式为greedy,这意味着它们会尽可能多地抓取它们。另外,这个:

var r = /\d+/;

相当于:

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

请参阅details for the RegExp object

以上内容将获取第一个数字组。您也可以循环查找所有匹配项:

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(全局)标志是此循环起作用的关键。

答案 1 :(得分:14)

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

document.write(matches);

<强>
参考文献:

http://www.regular-expressions.info/javascript.html

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

答案 2 :(得分:7)

我喜欢@jesterjunk回答, 但是,数字并不总是数字。考虑那些有效数字: &#34; 123.5,123,567.789,12233234 + E12&#34;

所以我刚刚更新了正则表达式:

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

答案 3 :(得分:3)

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

document.write(matches);

答案 4 :(得分:2)

var str = "you can enter maximum 500 choices";
str.replace(/[^0-9]/g, "");
console.log(str); // "500"

答案 5 :(得分:2)

我想我会对此添加我的看法,因为我只对我将其归结为第一个整数感兴趣:

let errorStringWithNumbers = "error: 404 (not found)";        
let errorNumber = parseInt(errorStringWithNumbers.toString().match(/\d+/g)[0]);

.toString() 仅在您从提取错误中获取“字符串”时添加。如果没有,那么您可以将其从行中删除。

答案 6 :(得分:0)

您也可以尝试以下方法:

var string = "border-radius:10px 20px 30px 40px";
var numbers = string.match(/\d+/g).map(Number);
console.log(numbers)

答案 7 :(得分:0)

// stringValue can be anything in which present any number
`const stringValue = 'last_15_days';
// /\d+/g is regex which is used for matching number in string
// match helps to find result according to regex from string and return match value
 const result = stringValue.match(/\d+/g);
 console.log(result);`
  

输出将为15

如果您想了解更多有关正则表达式的信息,请点击以下链接:

https://www.w3schools.com/jsref/jsref_obj_regexp.asp

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

https://www.tutorialspoint.com/javascript/javascript_regexp_object.htm