简单的正则表达式。从[~21~]获取数字

时间:2011-08-25 07:30:40

标签: javascript regex

我有一个看起来像这样的字符串:[~21~]。我怎样才能使用正则表达式才能返回21?数字可以是任何长度的任何值(数字)。我正在使用这个正则表达式的Javascript,所以如果你可以在你的示例中包含它,那就太好了。

托马斯

4 个答案:

答案 0 :(得分:2)

你可以:

  1. 删除除数字之外的任何其他字符
  2. 将结果数字解析为实数而不是字符串
  3. 像:

    var number = parseInt(str.replace(/[\D]/g, ""), 10);
    

    其中:

    • parseInt(..., 10)将任何字符串解析为基数为10的数字
    • str.replace(..., "")将删除字符(不用替换它们)
    • [\D]表示:除数字之外的任何内容

    例如,

    parseInt("[~21~]".replace(/[\D]/g, ""), 10) === 21;
    

    请注意,它会连接数字,例如[~21~22~];这将成为2122

答案 1 :(得分:0)

一个适合您案例的简单正则表达式是:

[0-9]+

这将匹配由字符组成的字符串序列:0,1,2,3,4,5,6,7,8,9

答案 2 :(得分:0)

如果您不担心错误处理:

 var getTheNumber = function(a) { return a.substring(0, a.length-2).substring(2); }

答案 3 :(得分:0)

-*\d+(\.\d+)*

考虑负数和/或十进制数。无论字符串如何,这都将提取任意数量的1位或更多位数。