我试图从遇到号码的地方拆分字符串。问题是数字有时会包含小数。
我没试过就试过这个:
str = "hello there can sometimes be decimals like 1.5 in here"
var parts = str.split(/\d*\.?\d*/);
预期的结果将是一个数组,其中包含数字在第一个位置之前的所有内容,然后是数字,然后是字符串的其余部分。
我做错了什么?
答案 0 :(得分:4)
我不认为这是一个单行,但这样的事情应该有效。
首先需要修复正则表达式,以便在第一个+
之前使用*
代替\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);
答案 1 :(得分:0)
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;
}