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

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

"ch2sl4" 

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

 "ch10sl4" 

或这个

 "ch2sl10" 

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

谢谢

是的, match是要走的路:

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

如果字符串总是如下所示: “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])numbers.map(function(a){ return +(a);}

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

 var str = 'ch2fsl4'; var numbers = str.match(/[0-9]+/g).map(function(n) {//just coerce to numbers return +(n); }); console.log(numbers);//[2,4] 

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

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

试试下面的代码

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