如何通过最佳方式解析字符串并获得必要的参数

时间:2013-02-21 09:41:14

标签: javascript regex string-parsing

我正在写一个Web应用程序。我使用服务器API在UI级别获取信息作为字符串。服务器端的这种响应是单字符串。这些字符串的结构如下:

  

回应( {numberParam} 点)

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

Response (76 points)

Response (5193 points)

Response (4 points)

Response (21 points)

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

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

我将不胜感激任何建议!

2 个答案:

答案 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+