从带有可能小数的数字中拆分

Split from number with possible decimals

我正在尝试从遇到数字的地方拆分字符串。问题是数字有时会有小数。

我试过了,但没有成功:

str = "hello there can sometimes be decimals like 1.5 in here"
var parts = str.split(/\d*\.?\d*/);

预期的结果将是一个数组,其中第一个位置是数字之前的所有内容,然后是数字,然后是字符串的其余部分。

我做错了什么?

我认为没有单行代码可以解决这个问题,但这样的事情应该可行。

首先需要修复正则表达式以使用 + 而不是第一个 \d*,以确保它匹配第一部分:

/\d+\.?\d*/

然后,我们需要提取数字,拆分并添加到数组中:

str = "hello there can sometimes be decimals like 1.5 in here"
var num = str.match(/\d+\.?\d*/);
var parts = str.split(/\d+\.?\d*/);
parts.splice(1,0,num);

var str = 'hello there can sometimes be decimals like 1.5 in here';
var firstDigit = str.indexOf(str.match(/\d/))-1 ;

function splitValue(value, index) {
var parts =[value.substring(0, index),value.substring(index)] ;  
   return parts;
}