Javascript 如何从js中的字符串中提取每个整数或浮点(正或负)

Javascript 如何从js中的字符串中提取每个整数或浮点(正或负),javascript,arrays,string,numbers,floating,Javascript,Arrays,String,Numbers,Floating,这是我的密码。它仍然返回null,我不知道为什么 var tName=“18.56x^2-5.45x-3.78”; abc=t名称。替换(/x/g,“”)。替换(“^2,”)。替换(/\s/g,“”); 控制台日志(abc); $re=“/-?\\d+(?:\.\\d+)/m”; $str=abc.toString(); log($str.match($re))您的正则表达式很好,只需将其设置为字符串而不是正则表达式文本 在构建RegExp常量时,您希望使用RegExp()构造函数(用于从字符

这是我的密码。它仍然返回null,我不知道为什么

var tName=“18.56x^2-5.45x-3.78”;
abc=t名称。替换(/x/g,“”)。替换(“^2,”)。替换(/\s/g,“”);
控制台日志(abc);
$re=“/-?\\d+(?:\.\\d+)/m”;
$str=abc.toString();

log($str.match($re))您的正则表达式很好,只需将其设置为字符串而不是正则表达式文本

在构建RegExp常量时,您希望使用
RegExp()
构造函数(用于从字符串构建)或只使用regex文本。您当前正在构建一个看起来像正则表达式的普通字符串,但实际上不是

尝试将此行编辑为以下内容:

$re=/-?\d+(?:\。\d+)/m;
编辑:

要访问字符串本身,只需使用索引0

var mat=$str.match($re);
console.log(mat[0])

您的正则表达式很好,只需将其设置为字符串而不是正则表达式文本

在构建RegExp常量时,您希望使用
RegExp()
构造函数(用于从字符串构建)或只使用regex文本。您当前正在构建一个看起来像正则表达式的普通字符串,但实际上不是

尝试将此行编辑为以下内容:

$re=/-?\d+(?:\。\d+)/m;
编辑:

要访问字符串本身,只需使用索引0

var mat=$str.match($re);
console.log(mat[0])
使用regexp(非字符串)作为
String.prototype.match()
的参数,如下所示:

var tName=“18.56x^2-5.45x-3.78”;
abc=t名称。替换(/x/g,“”)。替换(“^2,”)。替换(/\s/g,“”);
$re=/-?\d+(?:\。\d+)/m;
$str=abc.toString();
log($str.match($re))
使用regexp(而不是String)作为
String.prototype.match()
的参数,如下所示:

var tName=“18.56x^2-5.45x-3.78”;
abc=t名称。替换(/x/g,“”)。替换(“^2,”)。替换(/\s/g,“”);
$re=/-?\d+(?:\。\d+)/m;
$str=abc.toString();
log($str.match($re))您需要

  • 不引用正则表达式和
  • 无法逃避\d和
  • 添加全局标志
试试这个

const$re=/-?\d+(?:\。\d+)/mg,
tName=“18.56x^2-5.45x-3.78”,
abc=T名称。替换(/x/g,“”)。替换(^2,“”)。替换(/\s/g,“”),
nums=[…abc.matchAll($re)].map(m=>m[0]);
控制台日志(abc)
console.log(nums)
您需要

  • 不引用正则表达式和
  • 无法逃避\d和
  • 添加全局标志
试试这个

const$re=/-?\d+(?:\。\d+)/mg,
tName=“18.56x^2-5.45x-3.78”,
abc=T名称。替换(/x/g,“”)。替换(^2,“”)。替换(/\s/g,“”),
nums=[…abc.matchAll($re)].map(m=>m[0]);
控制台日志(abc)

console.log(nums)
只是一个提示,您可以使用
https://regex101.com/
要调试您的RegExp,还可以使用
$str=abc.toString()
是不必要的,只是一个提示,您可以使用
https://regex101.com/
要调试您的RegExp,还可以使用
$str=abc.toString()是不必要的,谢谢它工作了,但是我没有得到我想要的我认为我的正则表达式是不正确的…我得到:[“18.56”,索引:0,输入:'18.56-5.45-3.78',组:未定义]是的,这是一个“匹配对象”,请尝试在末尾添加一个
[0]
以引用匹配字符串。谢谢它工作了,但是我没有得到我想要的,我认为我的正则表达式是不正确的…我得到:[“18.56”,索引:0,输入:“18.56-5.45-3.78”,组:未定义]是的,这是一个“匹配对象”,请尝试在末尾添加一个
[0]
,以引用匹配字符串。