在javascript中仅返回给定字符串中的数字

时间:2014-02-25 19:14:06

标签: javascript jquery

我有一个这样的字符串:

var s= -123456abcd@abc.com

我想要这个

var res=123456

我怎样才能在javascript中执行此操作? 我应该使用正则表达吗? 有人能引导我走正确的路吗?

5 个答案:

答案 0 :(得分:3)

您可以使用正则表达式:

var numbers = s.match(/\d/g);

完整示例

var s= "-123456abcd@abc.com"
var numbers = s.match(/\d/g); // [1,2,3,4,5,6]
var resp = numbers.join(''); // "123456";

短版

var resp = s.match(/\d/g).join('');
//or
var resp = s.replace(/\D/g, '');

答案 1 :(得分:2)

var s= "-123456abcd@abc.com";
var matches = s.match(/\d+/g);
alert(matches.join(""));

DEMO

答案 2 :(得分:1)

怎么样

var s = "-123456abcd@abc.com";
var numbers = s.replace(/[^\d]/g, '');

http://jsfiddle.net/ZE22G/

答案 3 :(得分:0)

您可以使用match()方法执行此操作。它将返回一个数组,这很好,因为你的字符串中可能隐藏了多个数字。

var s = '-123456abcd@abc.com';
var numbers = s.match(/\d+/g);

for (var i = 0; i < numbers.length; i++) {
    alert(numbers[i]);
}

工作小提琴:http://jsfiddle.net/QcJwz/

答案 4 :(得分:0)

替换所有不是数字的东西

var s = '-123456abcd@abc.com'
var s2 = s.replace(/\D/g, '');

FIDDLE