Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript从字符串中提取数字_Javascript_Jquery_String_Match_Extract - Fatal编程技术网

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

使用javascript从字符串中提取数字,javascript,jquery,string,match,extract,Javascript,Jquery,String,Match,Extract,我想通过javascript/jquery从以下字符串中提取数字: "ch2sl4" 问题是字符串也可能如下所示: "ch10sl4" 还是这个 "ch2sl10" 我想把这两个数字存储在两个变量中。 有没有办法使用匹配来提取“sl”前后的数字?match是否是执行提取的正确函数 Thx是的,匹配是一种方法: var matches = str.match(/(\d+)sl(\d+)/); var number1 = Number(matches[1]); var number2 = Nu

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

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

"ch10sl4"
还是这个

"ch2sl10"
我想把这两个数字存储在两个变量中。 有没有办法使用
匹配
来提取
“sl”
前后的数字?
match
是否是执行提取的正确函数


Thx

是的,
匹配
是一种方法:

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

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

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

如果字符串总是如下所示:“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”的情况下,
数字
将如下所示:
[“2”,“4”]
,将它们强制为这样的数字:
var num1=+(数字[0])
,或
numbers.map(函数(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 tz = "GMT-7";
var tzOff = tz.replace( /[^+-\d.]/g, '');
alert(parseInt(tzOff));

谢谢你的回答。我想,也可以使用<代码> SPLIT()/<代码>。请考虑至少添加一些单词来解释为什么这个代码片段如何回答OP问题。这不回答OP的用例。它只提取一个数字来启动。