我有一些像这样的字符串:
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
答案 0 :(得分:4)
也许
string.replace(/^[^0-9]*/, "");
答案 1 :(得分:2)
你可以这样做
str.replace(/^[^\d]*/,"").replace(/[^\d]*$/,"");