2

我有一些这样的字符串:

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

4

2 回答 2

4

也许

string.replace(/^[^0-9]*/, "");
于 2013-07-23T14:44:53.553 回答
2

你可以这样做

str.replace(/^[^\d]*/,"").replace(/[^\d]*$/,"");
于 2013-07-24T06:38:17.830 回答