gpt4 book ai didi

javascript - 为什么我的正则表达式不能正常工作?

转载 作者:太空宇宙 更新时间:2023-11-04 03:19:38 26 4
gpt4 key购买 nike

我有一个字符串数组,其中包含许多不同的字符。我正在循环遍历数组并使用 .replace(RegExp,Replacement) 方法,但我似乎无法让它正常工作。我使用的表达式是“/[^\w\d]”。我试图删除任何不是字母或数字的内容,包括空格,并将其替换为“_”(以使其适合文件名)。我已经测试了上面的正则表达式,它应该是正确的。但我得到了奇怪且不需要的结果。以下代码将重现我的问题。

var StringArray = ["ABCdef123®","ABCdef/123®","ABCde f123®","ABCde/f123®","AB Cde\\f123®"];
const myRegex = new RegExp("/[^\w\d]");
var NewString;
var counter = 0;

StringArray.forEach(function(item){
NewString = item.replace(myRegex,"_");
console.log("Old String: " + item);
console.log("New String: "+ NewString);
counter++;
})

输出将如下所示

Old String: ABCdef123®
New String: ABCdef123®

Old String: ABCdef/123®
New String: ABCdef_23®

Old String: ABCde f123®
New String: ABCde f123®

Old String: AB Cde/f123®
New String: AB Cde_123®

Old String: AB Cde\f123®
New String: AB Cde\f123®

它不会找到反斜杠或“®”符号。当它确实找到某些内容时,它也会删除以下字符。我在这里做错了什么?

最佳答案

const myRegex = /\W/g;

有效。您希望 g 替换所有出现的情况。您的新正则表达式语法是错误的。它不应包含斜杠。

关于javascript - 为什么我的正则表达式不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51865967/

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