我有一个看起来像这样的字符串:[~21~]。我怎样才能使用正则表达式才能返回21?数字可以是任何长度的任何值(数字)。我正在使用这个正则表达式的Javascript,所以如果你可以在你的示例中包含它,那就太好了。
托马斯
答案 0 :(得分:2)
你可以:
像:
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位或更多位数。