Javascript 如何从js中的字符串中提取每个整数或浮点(正或负)
这是我的密码。它仍然返回null,我不知道为什么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()构造函数(用于从字符
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]
,以引用匹配字符串。