Javascript 如何对字符串使用筛选函数

Javascript 如何对字符串使用筛选函数,javascript,node.js,Javascript,Node.js,我有一根像这样的线:(5索努萨) 如何使用过滤函数而不是任何与字符串相关的函数提取数字 Filter函数对数组有效,但如何使其对字符串有效 我不能使用替换或匹配函数。您可以通过调用Array.prototype.filter.call,将字符串作为“this”参数,将filter函数作为第二个参数,对字符串使用filter 例如: var str=“5 dfkdf9 eofh” 让res=Array.prototype.filter.call(str,n=>!isNaN(parseInt(n)

我有一根像这样的线:(5索努萨)

如何使用过滤函数而不是任何与字符串相关的函数提取数字

Filter函数对数组有效,但如何使其对字符串有效
我不能使用替换或匹配函数。

您可以通过调用Array.prototype.filter.call,将字符串作为“this”参数,将filter函数作为第二个参数,对字符串使用filter

例如:

var str=“5 dfkdf9 eofh”
让res=Array.prototype.filter.call(str,n=>!isNaN(parseInt(n)))
console.log(res)
使用split()函数返回数组,然后使用filter()函数取出数组中的非数字。 然后,可以使用与字符串相关的函数将其转换回字符串(如果需要)

让myString=“5 Sonuç”
让myNum=myString.split(“”).filter(e=>!isNaN(e));

console.log(myNum)
您不能对字符串使用
filter()
,因为它是一个
数组。prototype
函数。@fedesc当然可以对字符串调用filter(请参见下面的答案)@MehdiBelbal您正在将字符串转换为数组,以便
filter
工作。这类似于
split()
,但这是一种很好的获取所需信息的方法result@fedesc字符串实际上是一个字符数组,即使在google v8引擎中也是如此,因此可以将其向下转换为其原始形式,而无需将其拆分为实际的显式字符数组,这对于engine@MehdiBelbal谢谢你的解释。