Javascript JS:从字符串中提取数字,即在特定单词之前

Javascript JS:从字符串中提取数字,即在特定单词之前,javascript,jquery,regex,Javascript,Jquery,Regex,我想提取正好在文本kcal之前的数字。我该怎么做 foo = "1119 kJ / 266 kcal"; // want to return: 266 您可以使用组匹配并捕获该单词前面的数字。下面的正则表达式将匹配/捕获以下任意字符:数字、“一个或多个”次,前接可选空格,后接单词“kcal” 正则表达式更简单、更干净,但如果不适合您,那么这里有另一条路线。您可以按“/”拆分字符串,然后按结果对再次拆分: foo = "1119 kJ / 266 kcal"; pairs = foo.spl

我想提取正好在文本
kcal
之前的数字。我该怎么做

foo = "1119 kJ / 266 kcal";

// want to return: 266

您可以使用组匹配并捕获该单词前面的数字。下面的正则表达式将匹配/捕获以下任意字符:数字、
“一个或多个”次,前接可选空格,后接单词“kcal”


正则表达式更简单、更干净,但如果不适合您,那么这里有另一条路线。您可以按“/”拆分字符串,然后按结果对再次拆分:

foo = "1119 kJ / 266 kcal";

pairs = foo.split("/");
res = pairs[1]; //get second pair

var res = foo.split(" "); //spit pair by space.

if (isNumber(res[0]) {
    alert("It's a number!");
}

function isNumber(n) {
    //must test for both conditions 
    return !isNaN(parseFloat(n)) && isFinite(n);
}

对于js(因为您在链接中选择了regexp for php)——将dot包含到捕获组中。
foo = "1119 kJ / 266 kcal";

pairs = foo.split("/");
res = pairs[1]; //get second pair

var res = foo.split(" "); //spit pair by space.

if (isNumber(res[0]) {
    alert("It's a number!");
}

function isNumber(n) {
    //must test for both conditions 
    return !isNaN(parseFloat(n)) && isFinite(n);
}