栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript有效替换字符串中的所有重音字符?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript有效替换字符串中的所有重音字符?

我无法说出您要针对函数本身专门做什么,但是如果您不喜欢每次都构建正则表达式,则这里有两个解决方案,以及每个注意事项。

这是执行此操作的一种方法:

function makeSortString(s) {  if(!makeSortString.translate_re) makeSortString.translate_re = /[öäüÖÄÜ]/g;  var translate = {    "ä": "a", "ö": "o", "ü": "u",    "Ä": "A", "Ö": "O", "Ü": "U"   // probably more to come  };  return ( s.replace(makeSortString.translate_re, function(match) {     return translate[match];   }) );}

显然,这会使正则表达式成为函数本身的属性。您对此可能不喜欢的唯一事情(或者您可能会猜到这取决于情况)是,现在可以在函数主体外部修改正则表达式。因此,有人可以这样做来修改相互使用的正则表达式:

makeSortString.translate_re = /[a-z]/g;

因此,有一个选择。

一种获得闭包(从而防止某人修改正则表达式)的方法是将其定义为匿名函数分配,如下所示:

var makeSortString = (function() {  var translate_re = /[öäüÖÄÜ]/g;  return function(s) {    var translate = {      "ä": "a", "ö": "o", "ü": "u",      "Ä": "A", "Ö": "O", "Ü": "U"   // probably more to come    };    return ( s.replace(translate_re, function(match) {       return translate[match];     }) );  }})();

希望这对您有用。


更新:还很早,我不知道为什么以前看不到明显的东西,但是将

translate
对象也放在闭包中也可能很有用:

var makeSortString = (function() {  var translate_re = /[öäüÖÄÜ]/g;  var translate = {    "ä": "a", "ö": "o", "ü": "u",    "Ä": "A", "Ö": "O", "Ü": "U"   // probably more to come  };  return function(s) {    return ( s.replace(translate_re, function(match) {       return translate[match];     }) );  }})();


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/382742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号