Javascript正则表达式从字符串的开头删除除数字之外的任何内容

时间:2013-07-23 14:39:45

标签: javascript regex

我有一些像这样的字符串:

var st1 = 'AU$99.95'; //应该返回99.95

var st2 = 'AU.99.95'; //应该返回99.95

var st1 = 'Blahblah $99,000'; //应该返回99,000

我当前的正则表达式让我大部分都在那里,我只是使用string.replace(/[^0-9.,]/g, "");

这适用于除#2之外的所有场景,此时允许的字符位于数字之前。我想只允许.,前面有一个数字。我怎样才能做到这一点?

(我知道我可以编写一个javascript函数来执行此操作,但我宁愿在一个正则表达式替换中完成所有操作)

编辑:

道歉,小小的疏忽。我还需要在数字之后删除任何文本(我假设在数字之前/之后不会产生影响,但显然他们会这样做!)。所以:

var st4 = 'blahblah $.99,000AUD //应该返回99,000

2 个答案:

答案 0 :(得分:4)

也许

string.replace(/^[^0-9]*/, "");

答案 1 :(得分:2)

你可以这样做

str.replace(/^[^\d]*/,"").replace(/[^\d]*$/,"");