1

我不能让它工作。我试图在按下某个键时替换某些字符。当我使用变量 replace_list 而不是 replace_list["russian"] 时它工作正常,但我需要不同的“替换列表”来处理其他事情。我究竟做错了什么?

<script type="text/javascript" src="javascript/jquery.js"></script>
<input id=answer>
<script>
replace_list = ["russian": {'a' : 'b', 'c' : 'd'}];

$(document).ready(function () {
    $("#answer").keydown(function () {
            var text = $(this).val();
            $.each(replace_list["russian"], function (index, value) {
                if (index == text.substring(text.length - value.length)) {
                    $("#answer").val(text.substring(0, text.length - value.length) + value);
               }
           });
    });
})
</script>
4

3 回答 3

1

您必须先创建数组(或调整分配)

var replace_list = [
    {'a' : 'а', 'A' : 'А', 'b' : 'б'},    // replace_list[0]
    {'B' : 'Б', 'v' : 'в', 'V' : 'В'}     // replace_list[1]
]

编辑
以满足您的要求(replace_list["russian"])从评论

var replace_list = {
    "russian": {'a' : 'а', 'A' : 'А', 'b' : 'б'},
    "english": {'a' : 'а', 'A' : 'A', 'b' : 'B'}
}
于 2012-05-21T06:37:06.837 回答
1

首先,您应该正确定义replace_list; 我假设您将拥有多个要在某些情况下应用的替换列表:

var replace_list = {
    'russian': {a: 'b', b: 'c', c: 'd'}
};

然后:

var text = $(this).val();
for (var search in replace_list['russian']) {
    text = text.replace(search, replace_list['russian'][search]);
}

$('#answer').val(text);

在行动:http: //jsfiddle.net/k8Dhg/

于 2012-05-21T06:50:25.290 回答
0
var replace_list = new Object();
replace_list["russian"] = {'a' : 'а', 'A' : 'А', 'b' : 'б', 'B' : 'Б', 'v' : 'в', 'V' : 'В', 'g' : 'г', 'G' : 'Г', 'd' : 'д', 'D' : 'Д', 'ye' : 'е', 'YE' : 'Е', 'yo' : 'ё', 'YO' : 'Ё', 'zh' : 'ж', 'ZH' : 'Ж', 'z' : 'з', 'Z' : 'З', 'i' : 'и', 'I' : 'И', 'j' : 'й', 'J' : 'Й', 'k' : 'к', 'K' : 'К', 'l' : 'л', 'L' : 'Л', 'm' : 'м', 'M' : 'М', 'n' : 'н', 'N' : 'Н', 'o' : 'о', 'O' : 'О', 'p' : 'п', 'P' : 'П', 'r' : 'р', 'R' : 'Р', 's' : 'с', 'S' : 'С', 't' : 'т', 'T' : 'Т', 'u' : 'у', 'U' : 'У', 'f' : 'ф', 'F' : 'Ф', 'kh' : 'х', 'KH' : 'Х', 'ts' : 'ц', 'TS' : 'Ц', 'ch' : 'ч', 'CH' : 'Ч', 'sh' : 'ш', 'SH' : 'Ш', 'shch' : 'щ', 'SHCH' : 'Щ', '\"' : 'ъ', '\"' : 'Ъ', 'y' : 'ы', 'Y' : 'Ы', '\'' : 'ь', '\'' : 'Ь', 'e' : 'э', 'E' : 'Э', 'yu' : 'ю', 'YU' : 'Ю', 'ya' : 'я', 'YA' : 'Я'};

现在您可以在俄语中获得“a”的值

replace_list["russian"]['a']

通过这种方式,您可以使您的列表语言具体化,并将其扩展到您希望的尽可能多的语言

于 2012-05-21T07:36:32.670 回答