gpt4 book ai didi

javascript - 有没有更简洁的方法来删除非字母数字字符并替换空格?

转载 作者:行者123 更新时间:2023-11-29 19:49:10 24 4
gpt4 key购买 nike

我想替换所有非字母数字字符,并用下划线替换空格。到目前为止,我已经使用多个有效的正则表达式提出了这个方法,但是有没有更“有效”的方法?

"Well Done!".toLowerCase().replace(/\s/, '-').replace(/[^\w-]/gi, '');

well-done

最佳答案

至少在其他语言中,调用正则表达式引擎是昂贵的。我不确定这是否适用于 JavaScript,但这里是“C 风格”的实现方式。我相信亲自对其性能进行基准测试将是一次宝贵的学习经历。

var x = "Well Done!";
var y = "";
var c;
for (var i = 0; i < x.length; i++)
{
c = x.charCodeAt(i);
if (c >= 48 && c <= 57 || c >= 97 && c <= 122)
{
y += x[i];
}
else if (c >= 65 && c <= 90)
{
y += String.fromCharCode(c+32);
}
else if (c == 32 || c >= 9 && c <= 13)
{
y += '-';
}
}
$('#output').html(y);

参见 http://www.asciitable.com/用于 ASCII 码。这是 a jsFiddle .请注意,我还实现了您的 toLowerCase(),只需将 32 添加到大写字母即可。


免责声明

当然,就我个人而言,我更喜欢可读代码,因此更喜欢正则表达式,或者使用某种 strtr 函数(如果 JavaScript 中存在的话)。这个答案纯粹是为了教育。

关于javascript - 有没有更简洁的方法来删除非字母数字字符并替换空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18335656/

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