例如,在以下示例中,如何为fs = 60
highcut = 2
lowcut= .5
def butter_bandpass(lowcut, highcut, fs, order=5):
nyq = 0.5 * fs
low = lowcut / nyq
high = highcut / nyq
b, a = butter(order, [low, high], btype='band')
return b, a
def butter_bandpass_filter(data, lowcut, highcut, fs, order=5):
b, a = butter_bandpass(lowcut, highcut, fs, order=order)
y = lfilter(b, a, data)
return y
test = butter_bandpass_filter(heartRateData, lowcut, highcut, fs, order=5)
获得“ 1.2”和“ kg”?目前,我得到“”,“ 1。”和“ kg”。
x
答案 0 :(得分:2)
这应该起作用:
function split()
{
var data = "1.2kg";
var x = data.match(/[\d\.]+|\D+/g);
console.log(x);
}
split();
答案 1 :(得分:1)
类似的东西:
let [value,unit] = data.match(/^[0-9.]*|[a-z]*$/g)
显然,这不是企业级解决方案。如果输入中出现多个点,非字母字符,大写字母,则结果可能会有所不同。
['1.2kg',
'1.2 kg',
'10.0.0.2 IP',
'1 square méter' ].map(
data => data.match(/^[0-9.]*|[a-z]*$/g)
)
答案 2 :(得分:1)
您可以使用parseFloat
来达到此目的,如果需要浮点值,则不需要正则表达式。
var data = "1.2kg";
console.log(parseFloat(data)) // 1.2
答案 3 :(得分:0)
您需要使用匹配而不是拆分。 :-)
var data = "1.2kg";
var m = data.match(/[.0-9]+/);
console.log(m[0])
答案 4 :(得分:0)
function split()
{
var data = "hello world";
var x = data.split(/\s/);
document.getElementById('test').innerHTML = x
}
split()
<span id="test"></span>
如果您查看此简化的帖子,您会看到它删除了与之匹配的项目。因此,我认为拆分不是您想要的。格式有什么变化?您可以使用简单的正则表达式删除数字吗?
function doWork() {
var str = "1.2kg";
var matches = str.match(/(\d+)\.{0,1}(\d)/);
if (matches) {
document.getElementById('demo').innerHTML
= matches[0];
}
}
doWork()
<p>String is "1.2kg"</p>
<span id="demo"></span>
答案 5 :(得分:0)
我不是这方面的专家,但是我可以使用它:
var x = data.split(/([0-9]*[.]*[0-9])/);
答案 6 :(得分:0)
替代:parseFloat
和slice
(使用findIndex
)
const parseAndSplitQuantity = s => `${parseFloat(s)} ${
s.slice( [...s].findIndex( v => /[^0-9|.]/.test(v) ) ) }`;
["1.2kg", "23.45Mb", "100Pound", "20.34Dollar", "23187.22Miles"]
.forEach( str => console.log(`${str} => ` + parseAndSplitQuantity(str)) );
.as-console-wrapper { top: 0; max-height: 100% !important; }