我会使用正则表达式,它非常适合匹配这样的模式。这是一个正则表达式,用于将输入字符串拆分为由一个或多个非数字字符 ( \D+
) 拆分的部分,以便生成的数组看起来像['','76','']
,您可以[1]
从该数组中选择位置 1 ( )。
var str = "Response (76 points)"
var num = str.split(/\D+/)[1]
console.log(num)
或者,您可以用任何内容替换所有非数字字符...
var num = str.replace(/\D/g,'')
console.log(num)
或者匹配第一个数字字符链......
var num = str.match(/\d+/)[0]
console.log(num)
或者可能是最有用的,是用一个或多个非单词字符 ( \W+
) 分割,它给出了一个单词数组,然后选择你想要的部分。我喜欢这个,因为它能够从错误消息中检索其他有意义的信息,并且可以应用于许多不同的错误消息和情况......
var parts = str.split(/\W+/)
// parts is: [ 'Response', '76', 'points', '' ]
var num = parts[1]
console.log(num)