Javascript数组-在数字处拆分字符串

Javascript数组-在数字处拆分字符串,javascript,arrays,regex,split,Javascript,Arrays,Regex,Split,我有一个未知字符串,其中包含一组数字,如下所示: var string = "stuff 1.23! (456) 789 stuff"; 我想拆分数组,以便修改数字,然后重新加入数组。我想要的结果应该是这样的: var result = ['stuff ', 1.23, '! (', 456, ') ', 789, ' stuff']; 有没有比单独循环每个字符更好的解决方案?谢谢 使用字符类拆分值: /(-?[\d.]+)/ -?可以以负数开头,例如-123 [\d.]+有一个或多个数

我有一个未知字符串,其中包含一组数字,如下所示:

var string = "stuff 1.23! (456) 789 stuff";
我想拆分数组,以便修改数字,然后重新加入数组。我想要的结果应该是这样的:

var result = ['stuff ', 1.23, '! (', 456, ') ', 789, ' stuff'];

有没有比单独循环每个字符更好的解决方案?谢谢

使用字符类拆分值:

/(-?[\d.]+)/
  • -?
    可以以负数开头,例如
    -123
  • [\d.]+
    有一个或多个数字和小数
var string=“stuff 1.23!(456)789 stuff-234”。拆分(/(?[\d.]+)/);

log(string)
理想的解决方案实际上取决于您对数据的具体操作。一个简单的解决方案是使用replace的正则表达式

var string=“stuff 1.23!(456)789 stuff”;
var updated=string.replace(/\d+(\.\d+)?/g,函数(m){
控制台日志(m);
返回“xxx”;
})

console.log(已更新)
A是一个表达式,您可以使用它在字符串中搜索数字。它会搜索数字序列,您将能够在字符串上使用创建一个字符串数组,如您指定的那样。

string.split(/(\d+/)
为什么不使用replace?最佳解决方案实际上取决于您实际在做什么。我的意思是,我可以用锤子打开一个窗口,但如果我需要关闭它,这可能不是最好的解决方案。没有单一的RegExp或String方法可以创建您需要的结果(具有混合类型的数组)。因此,您必须映射结果数组以将数字字符串更改为数字。