如何在 javascript 中用“正常”形式(a、s、t)替换变音符号(ă、ş、ţ 等)?
原文由 Paul Grigoruta 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 javascript 中用“正常”形式(a、s、t)替换变音符号(ă、ş、ţ 等)?
原文由 Paul Grigoruta 发布,翻译遵循 CC BY-SA 4.0 许可协议
在现代浏览器和 node.js 中,您可以使用 unicode 规范化 来分解这些字符,然后使用过滤正则表达式。
str.normalize('NFKD').replace(/[^\w]/g, '')
如果你想允许空格、破折号等字符,你应该扩展正则表达式以允许它们。
str.normalize('NFKD').replace(/[^\w\s.-_\/]/g, '')
var str = 'áàâäãéèëêíìïîóòöôõúùüûñçăşţ';
var asciiStr = str.normalize('NFKD').replace(/[^\w]/g, '');
console.info(str, asciiStr);
注意: 此方法不适用于没有由 unicode 组成的 varian 的字符。即 ø
和 ł
原文由 pakopa 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答874 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
如果您想完全在客户端完成,我认为您唯一的选择是使用某种查找表。这是一个起点,由一个名叫 Olavi Ivask 的小伙子在他的 博客 上写的……
您可以看到这只是一组用于已知变音符号的正则表达式,将它们映射回“普通”字符。