Javascript Regex - 将字符串转换为数字

时间:2015-05-21 10:14:54

标签: javascript regex

我有字符串,我想删除任何字母和连字符。我有一个如下代码,

var s = '-9d 4h 3m',
    t = '1-22';

var p = /[^0-9-]+/g;
    r = s.replace(p, ''),
    a = t.replace(p, '');

console.log(r, a);

这里我想删除连字符,如果它在数字之间并且首先省略。有任何帮助或建议吗?

Fiddle

4 个答案:

答案 0 :(得分:3)

更简单的一个没有使用|运算符。

string.replace(/(?!^-)\D/g, "")

DEMO

答案 1 :(得分:1)

您可以使用以下正则表达式:

var p = /[^0-9-]+|(?:(?!^)-)/g;

请参阅Fiddle

答案 2 :(得分:0)

在你的控制台日志中,你在变量之间放了一个逗号,但你需要这样的加号。 我还更改了变量a,以便删除 -

var s = '-9d 4h 3m';
var t = '1-22';

var p = /[^0-9-]+/g;
var r = s.replace(p, '');
var a = t.replace("-", '');

console.log(r + " " + a);

答案 3 :(得分:0)

https://stackoverflow.com/a/1862219/3464552检查一下这将是一个解决方案。

var s = '-9d 4h 3m',
s = s.replace(/\D/g,'');