gpt4 book ai didi

javascript - 删除 javascript 字符串中的变音符号或特殊字符

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:19:29 24 4
gpt4 key购买 nike

以前从未玩过 javascript 字符串中的变音符号或特殊字符。我的问题是如何删除它们?

例如我在 javascript 中有这个:

var oldstr = "Bayern München";
var str = oldstr.split(' ').join('-');

结果是 Bayern-München ok easy,但现在我想删除元音变音符或特殊字符,例如:

Real Sporting de Gijón.

我怎样才能意识到这一点?

亲切的问候,

弗兰克

最佳答案

replace 应该可以为您完成,例如:

var str = str.replace(/ü/g, 'u');

...当然 üu 不是同一个字母。 :-)

如果您尝试用某些东西(如 -)替换给定范围外的所有字符,您可以通过指定范围来实现:

var str = str.replace(/[^A-Za-z0-9\-_]/g, '-');

所有 非英文字母、数字、-_ 的字符替换为 - . (字符范围为[...]位,开头的^表示“不是”。)Here's a live example .

但是那个(“Bayern-M-nchen”)可能会让 München 先生看起来有点不愉快。 :-) 您可以使用传递给 replace 的函数来尝试删除变音符号:

var str = str.replace(/[^A-Za-z0-9\-_]/g, function(ch) {
// Character that look a bit like 'a'
if ("áàâä".indexOf(ch) >= 0) { // There are a lot more than this
return 'a';
}
// Character that look a bit like 'u'
if ("úùûü".indexOf(ch) >= 0) { // There are a lot more than this
return 'u';
}
/* ...long list of others...*/
// Default
return '-';
});

Live example

上面针对长字符串进行了优化。如果字符串本身很短,您最好使用重复的正则表达式:

var str = str.replace(/[áàâä]/g, 'a')
.replace(/[úùûü]/g, 'u')
.replace(/[^A-Za-z0-9\-_]/g, '-');

...但这是推测性的。

请注意,JavaScript 字符串中的文字字符完全没问题,但您可能会遇到文件编码的乐趣。我倾向于坚持 unicode 转义。因此,例如,上面的内容是:

var str = str.replace(/[\u00e4\u00e2\u00e0\u00e1]/g, 'a')
.replace(/[\u00fc\u00fb\u00f9\u00fa]/g, 'u')
.replace(' ','-');

...不过,还有很多要做...

关于javascript - 删除 javascript 字符串中的变音符号或特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4804885/

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