2011-10-19 170 views
1

我已经搜索了n修订后的JS,用新的替换字母(字符),但我也想用不同的字符替换多个字符。javascript替换多个字符

i。即与'w'字母(如gw,kw)组合的单词不应该被打印为ѱ但是¼£。但是,下面的代码无法正常工作:(

任何想法表示赞赏。

$(function() { 
$("textarea").keyup(function() { 
    var word = $(this).val(); 
    var tifinaghized = word.replace(/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]|gw|kw/g, function(s) { 
     return alphabet[s]; 
    }); 
    $("div").text(tifinaghized); 
}); 
}); 

var alphabet = { 
'a': 'Æ', 
'b': 'ⴱ', 
'c': 'Î', 
'd': 'Ë', 
'e': 'Ã', 
'f': 'â', 
'g': 'Ñ', 
... 
'w': '±', 
... 
'gw': '¼£', 
'kw': 'þ' 
}; 

回答

2

尝试改变正则表达式来

/gw|kw|[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/g 
+0

+1或'/ [abcdefhijlmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ] | gw | kw | [gk]/g'但你的更好:-) – xanatos

0

你可以试试这个。这里的想法是,只有当多个字母组合(gw)不匹配,则我们继续匹配单个字母组合。


$(function() { 
    $("textarea").keyup(function() { 
     var word = $(this).val(); 
     var tifinaghized = word.replace(/gw|kw|[a-z]/gi, function(s) { 
      return alphabet[s]; 
     }); 
     $("div").text(tifinaghized); 
    }); 
});