我正在尝试将土耳其语字符转换为可读的子弹。但是它失败并没有定义...

这里有什么问题?

HTML

<div id="converter">Fıstıkçı Şahap Çık Dışarı Dağlarda Oyna</div>


Js:

String.prototype.sluggable = function(){
    var string = this;
    var letters = {
        "İ": "i",
        "I": "i",
        "ı": "i",
        "Ş": "s",
        "ş": "s",
        "Ğ": "g",
        "ğ": "g",
        "Ü": "u",
        "ü": "u",
        "Ö": "o",
        "ö": "o",
        "Ç": "c",
        "ç": "c"
    };

    string = string.replace(/([İIıŞşĞğÜüÇçÖö])+/g, function(letter){ return letters[letter]; });
    return string.toLowerCase().replace(/([^a-zA-Z0-9])+/g, '_');
}

var $text = $('#converter').text();
$('#converter').text($text.sluggable());


演示:
http://jsfiddle.net/Fr8Nq/

最佳答案

将正则表达式更改为以下内容:

/[İIıŞşĞğÜüÇçÖö]/g


您不需要匹配字符序列,而是单独替换它们。

演示:http://jsfiddle.net/Fr8Nq/1/

关于javascript - Javascript创建土耳其语可拖拉,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24040127/

10-09 22:39