gpt4 book ai didi

javascript - 匹配连字符的 float

转载 作者:行者123 更新时间:2023-11-28 20:36:24 26 4
gpt4 key购买 nike

我正在处理 JavaScript 代码,我需要提取连字符之间的浮点或整数。像这样:

var string="someText-180.5-200.70-someOtherText";

我需要得到:

var number1="180.5";
var number2="200.70";

最佳答案

虽然其他基于 RegExp 的解决方案有效,但我将提出一个不使用正则表达式的解决方案。我这样做的动机是正则表达式有时很难阅读、修改和/或调试。

此代码返回一个数组,其中包含字符串中的所有 float (假设 float 为正)

"someText-180.5-200.70-someOtherText".split("-"). //splits by hyphens
map(function(elem){
return parseFloat(elem);//convert each part to float
}).filter(function(elem){
return elem===elem;//filter out the not-a-numbers,
// that is, stuff converting to float failed on
});

如果您对此更满意,也可以在没有 map/filter 的情况下以不太“功能”的方式完成此操作。我相信代码的可读性非常非常重要,您应该对自己的代码感到满意。你可以做

var str = "someText-180.5-200.70-someOtherText";
var splitStr = str.split("-");
var arrayOfFloats = [];
for(var i=0;i<splitStr.length;i++){
var asFloat = parseFloat(splitStr[i]);
if(asFloat===asFloat){ //check for NaN, that is parse float fails
arrayOfFloats.push(asFloat);
}
}
//now arrayOfFloats contains all the floats in your expression

如果您不想匹配第一个和最后一个部分(即仅严格位于连字符之间的 float )元素,您可以先对它们进行切片 :)

关于javascript - 匹配连字符的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15289177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com