Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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_Regex_Substring_Slice - Fatal编程技术网

Javascript从字符串中提取数字

Javascript从字符串中提取数字,javascript,regex,substring,slice,Javascript,Regex,Substring,Slice,我想从javascript中的字符串中提取数字,如下所示: 如果字符串='make1to6',我想在整个字符串中提取'to'子字符串前后的数字字符。i、 e.1和6将被提取 字符串的长度不是固定的,最多可以是10个字符。数字最多可以是字符串中“to”两侧的两个数字 可能的字符串值: 当然是1to3 ic3to9ltd 安娜1至6 欢乐1至4 从6点到12点 ext12到36 想想这样的事情: function beforeTo(string) { return numeric_val

我想从javascript中的字符串中提取数字,如下所示:

如果字符串='make1to6',我想在整个字符串中提取'to'子字符串前后的数字字符。i、 e.1和6将被提取

字符串的长度不是固定的,最多可以是10个字符。数字最多可以是字符串中“to”两侧的两个数字

可能的字符串值:

  • 当然是1to3
  • ic3to9ltd
  • 安娜1至6
  • 欢乐1至4
  • 从6点到12点
  • ext12到36
想想这样的事情:

function beforeTo(string) {
    return numeric_value_before_'to'_in_the_string;
}

function afterTo(string) {
    eturn numeric_value_after_'to'_in_the_string;
}

我将使用这些返回值进行一些计算。

下面是一个示例函数,该函数将返回表示两个数字的数组,如果不匹配,则返回null:

function extractNumbers(str) {
    var m = /(\d+)to(\d+)/.exec(str);
    return m ? [+m[1], +m[2]] : null;
}

您可以调整该正则表达式以满足您的需要,例如使其不区分大小写:
/(\d+)到(\d+/i.exec(str)
下面是一个示例函数,该函数将返回表示两个数字的数组,如果不匹配,则返回
null

function extractNumbers(str) {
    var m = /(\d+)to(\d+)/.exec(str);
    return m ? [+m[1], +m[2]] : null;
}

您可以调整正则表达式以满足您的需要,例如使其不区分大小写:
/(\d+)到(\d+/i。exec(str)
您可以使用正则表达式来查找它:

var str = "sure1to3";
var matches = str.match(/(\d+)to(\d+)/);
if (matches) {
    // matches[1] = digits of first number
    // matches[2] = digits of second number
}

您可以使用正则表达式来查找它:

var str = "sure1to3";
var matches = str.match(/(\d+)to(\d+)/);
if (matches) {
    // matches[1] = digits of first number
    // matches[2] = digits of second number
}

@桑迪505:嗯,你认识正则表达式,对吗<代码>/(\d+)到(\d+)/。我们从那开始
\d
表示“从0到9的任何数字”。
\d+
表示“至少一个数字”。
到只匹配单词“到”。
。exec
对字符串执行表达式,并将其转换为匹配数组。所以
m[1]
是第一组数字,
m[2]
是第二组数字。。。如果匹配,则返回数组中的值。就这样。您现在可以访问第一个数字作为
myArray[0]
,第二个数字作为
myArray[1]
@Sandy505:嗯,您可以识别正则表达式,对吗<代码>/(\d+)到(\d+)/
。我们从那开始
\d
表示“从0到9的任何数字”。
\d+
表示“至少一个数字”。
到只匹配单词“到”。
。exec
对字符串执行表达式,并将其转换为匹配数组。所以
m[1]
是第一组数字,
m[2]
是第二组数字。。。如果匹配,则返回数组中的值。就这样。现在,您可以访问第一个编号为
myArray[0]
,第二个编号为
myArray[1]