0

我正在编写一个 Web 应用程序。我正在使用服务器 API 在 UI 级别以字符串形式获取信息。来自服务器端的此类响应是单个字符串。这些字符串的结构如下:

响应({numberParam}点)

它总是不变的。获取字符串的示例:

Response (76 points)

Response (5193 points)

Response (4 points)

Response (21 points)

我只需要从获取字符串中检索此数字参数的值

我不应该使用任何外部库和框架。只有原生 JavaScript。

我将不胜感激任何建议!

4

2 回答 2

4

如果你的字符串总是这样,那么你可以简单地做

var num = parseInt(str.match(/\d+/)[0], 10);
于 2013-02-21T09:44:04.130 回答
1

我会使用正则表达式,它非常适合匹配这样的模式。这是一个正则表达式,用于将输入字符串拆分为由一个或多个非数字字符 ( \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)
于 2013-02-21T09:43:50.590 回答