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

FLu*_*enb 5 javascript string jquery extract match

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

"ch2sl4"
Run Code Online (Sandbox Code Playgroud)

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

"ch10sl4"
Run Code Online (Sandbox Code Playgroud)

或这个

"ch2sl10"
Run Code Online (Sandbox Code Playgroud)

我想将2个数字存储在2个变量中.有没有办法使用,match所以它提取前后的数字"sl"?会match甚至是正确的函数来进行提取?

谢谢

geo*_*org 10

是的,match是要走的路:

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


Eli*_*gem 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.
Run Code Online (Sandbox Code Playgroud)

"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]
Run Code Online (Sandbox Code Playgroud)