我正在写一个Web应用程序。我使用服务器API在UI级别获取信息作为字符串。服务器端的这种响应是单字符串。这些字符串的结构如下:
回应( {numberParam} 点)
总是不变的。获取字符串的示例:
Response (76 points)
Response (5193 points)
Response (4 points)
Response (21 points)
我只需要从获取字符串中检索此数字参数的值。
我不应该使用任何外部库和框架。只有原生JavaScript。
我将不胜感激任何建议!
答案 0 :(得分:4)
如果您的字符串总是那样,那么您可以简单地执行
var num = parseInt(str.match(/\d+/)[0], 10);
答案 1 :(得分:1)
我会使用正则表达式,它非常适合匹配这样的模式。这是一个正则表达式,用于将输入字符串拆分为由一个或多个非数字字符(\D+
)拆分的部分,以便结果数组看起来像['','76','']
,并且您可以选择位置1({ {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+