You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改JavaScript的simplify函数以保留指定特殊字符

保留指定特殊字符的JavaScript字符串简化函数修改

我有一个用于移除指定字符以外所有内容的JavaScript函数,原代码如下:

function simplify(string) {
    return string.toLowerCase().replace(/[^A-Za-z0-9'_]+/g, " ").trim();
}

现在需要让这个函数保留数组["’", "-"]中的元素,不让它们被移除。当前函数会将这两个字符替换为空格,比如执行以下代码:

function simplify(string) {
    return string.toLowerCase().replace(/[^A-Za-z0-9'_]+/g, " ").trim();
}

console.log(simplify("father’s deep-day"));

得到的输出是"father s deep day",但期望输出为"father’s deep-day"。


修改方案

只需将需要保留的字符加入正则表达式的允许字符集合中。注意-在正则字符集里用于表示范围,所以需要转义(\-)避免歧义,直接添加到否定字符集[^...]内即可:

function simplify(string) {
    return string.toLowerCase().replace(/[^A-Za-z0-9'_’\-]+/g, " ").trim();
}

验证示例

执行修改后的代码:

function simplify(string) {
    return string.toLowerCase().replace(/[^A-Za-z0-9'_’\-]+/g, " ").trim();
}

console.log(simplify("father’s deep-day")); // 输出:"father’s deep-day"

此时’和-会被完整保留,符合预期需求。


内容的提问来源于stack exchange,提问作者user21189833

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 17:02:06