gpt4 book ai didi

javascript - 组合非单词和下划线模式以匹配任何非字母数字字符

转载 作者:行者123 更新时间:2023-11-30 14:52:47 25 4
gpt4 key购买 nike

在 javascript 中,我想清除所有非字母数字字符。这是我的代码:

function (inpt) {
return inpt.replace(/[^\w]/gi, "").replace(/_/g, "");
}

此代码 100% 正确。删除所有非字母数字字符。

\w 仍然允许下划线,这就是为什么我将两个 replace 语句链接在一起的原因。

然后我尝试像这样组合正则表达式,现在不再过滤下划线。

function (inpt) {
return inpt.replace(/[^\w_]/gi, ""); // note: added _
}

我做错了什么?

最佳答案

您的[^\w_] 模式代表一个negated character class匹配除单词(字母、数字或 _)和 _ 字符以外的任何字符。

[^\w] 模式等于\W。所以,你可以使用

/[\W_]/g

参见 regex demo .

这里,[\W_] 是一个 character class匹配非单词字符或 _

JS 演示:

var str = "some%_1string*";
console.log(str.replace(/[\W_]+/g, ''));

请注意 .replace(/[\W_]+/g, '').replace(/[\W_]/g, '') 因为 + 量词匹配 1+ 个连续出现的匹配字符,并一次性将它们全部删除。

关于javascript - 组合非单词和下划线模式以匹配任何非字母数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47873521/

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