使用javascript从字符串中提取数字

时间:2013-07-25 07:42:29

标签: javascript jquery string match extract

我想通过javascript / jquery从以下字符串中提取数字:

"ch2sl4"

问题是字符串也可能如下所示:

"ch10sl4"

或者

"ch2sl10"

我想将2个数字存储在2个变量中。 有没有办法使用match所以它提取"sl"之前和之后的数字? match甚至可以正确地进行提取吗?

THX

4 个答案:

答案 0 :(得分:10)

是的,match是要走的路:

var matches = str.match(/(\d+)sl(\d+)/);
var number1 = Number(matches[1]);
var number2 = Number(matches[2]);

答案 1 :(得分:8)

如果字符串总是如下所示:“ch [num1] sl [num2]”,您可以轻松获取没有正则表达式的数字:

var numbers = str.substr(2).split('sl');
//chop off leading ch---/\   /\-- use sl to split the string into 2 parts.

如果是“ch2sl4”numbers将如下所示:["2", "4"],将其强制转换为数字:var num1 = +(numbers[0])或{{ 1}}。

如果字符串部分是可变的,那么这一切都是一次性完成:

numbers.map(function(a){ return +(a);}

答案 2 :(得分:2)

作为另一种选择,只是为了展示如何以多种方式实现目标

var str = "ch2sl10";
var num1 = +(str.split("sl")[0].match(/\d+/));
var num2 = +(str.split("sl")[1].match(/\d+/));

答案 3 :(得分:-1)

尝试以下代码

var tz = "GMT-7";
var tzOff = tz.replace( /[^+-\d.]/g, '');
alert(parseInt(tzOff));