gpt4 book ai didi

javascript - JavaScript 函数中的正则表达式问题 - 不替换任何内容

转载 作者:行者123 更新时间:2023-11-28 17:44:03 26 4
gpt4 key购买 nike

A 计划:这是一个如此简单的功能……这真的很荒谬。我要么完全误解了 RegEx 如何处理字符串替换,要么犯了另一个我无法指出的愚蠢错误。

    function returnFloat(str){
console.log(str.replace(/$,)( /g,""));
}

但是当我调用它时:

    returnFloat("($ 51,453,042.21)")
>>> ($ 51,453,042.21)

据我所知,我的正则表达式应该删除所有出现的美元符号、逗号和括号。我已经阅读了至少 10 篇有关类似问题的不同帖子(大多数人将正则表达式作为字符串或无效的正则表达式,但我认为这不适用于此处),而没有进行任何更改来解决我的问题。

我的 B 计划很难看:

            str = str.replace("$", "");
str = str.replace(",", "");
str = str.replace(",", "");
str = str.replace(" ", "");
str = str.replace("(", "");
str = str.replace(")", "");
console.log(str);

最佳答案

RegEx 中的某些内容被视为特殊的正则表达式字符,其中包括字符 $() 。如果您想精确搜索它们,您需要对它们进行转义(并将它们放入字符集或按位或分组中)。否则 Your Regex makes no sense to an interpreter

function toFloat(str){
return str.replace(/[\$,\(\)]/g,'');
}

console.log(toFloat('($1,234,567.90'));

请注意,这不会将此字符串转换为 float ,如果您尝试执行 toFloat('($1,234,567.90)')+10 you would get '1234568.9010'. 您需要调用 parseFloat() 函数。

关于javascript - JavaScript 函数中的正则表达式问题 - 不替换任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47209503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com