Javascript正则表达式-将字符串转换为数字
我有一个字符串,我想删除任何字母和连字符。我有下面这样的代码Javascript正则表达式-将字符串转换为数字,javascript,regex,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); 在这里,我想删除连字符,如果它是在数字之间,并在第一次省略。有什么帮助或建议吗 在控制台日志中,您在变量之间加了一个逗号,但您需要这样一个加号。 我还更改了变量a,以便它删除
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);
在这里,我想删除连字符,如果它是在数字之间,并在第一次省略。有什么帮助或建议吗
在控制台日志中,您在变量之间加了一个逗号,但您需要这样一个加号。 我还更改了变量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);
在控制台日志中,在变量之间加一个逗号,但需要像这样加一个加号。 我还更改了变量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);
检查这里,这将是一个解决方案
var s = '-9d 4h 3m',
s = s.replace(/\D/g,'');
检查这里,这将是一个解决方案
var s = '-9d 4h 3m',
s = s.replace(/\D/g,'');
您可以使用以下正则表达式:
var p = /[^0-9-]+|(?:(?!^)-)/g;
请参见,您可以使用以下正则表达式:
var p = /[^0-9-]+|(?:(?!^)-)/g;
无需使用
|
运算符,请参见更简单的操作
string.replace(/(?!^-)\D/g, "")
更简单的方法,不使用
|
操作符
string.replace(/(?!^-)\D/g, "")
所以基本上你期待的是
-943122
?@adeneo,没错!你是对的。你也要删除尾随的hypens,或者只是“在”数字之间?@adeneo,尾随的hypens,而不仅仅是介于两者之间的一个。@aravindtrue你的问题对我来说完全不清楚。所以基本上你期待的是-943122
?@adeneo,没错!你是对的。你想同时删除尾随的hypens,或者只是“在”数字之间?@adeneo,尾随的hypens,而不仅仅是介于两者之间的一个。@aravindtrue你的问题对我来说完全不清楚。天哪,我只是没能将这两个正则表达式组合起来。@AvinashRaj发生了……)我认为/[^0-9-]+|((?!^)-)/g就足够了,即非俘虏?:是冗余的,我只是没能将这两个正则表达式组合起来。@AvinashRaj恰巧我认为/[^0-9-]+|((?!^)-)/g就足够了,即非俘虏?:是多余的,我只是想用\D
替换+1:PI刚想到用\D
替换+1:P