作为函数参数传递的字符串抛出未定义的Uncaught TypeError

时间:2014-07-24 16:23:48

标签: javascript string replace

我有下一个代码来替换.js文件中字符串的重音:

var accents = /[áéíóúüÁÉÍÓÚÜ]/g;
var translate = {
    "á": "a", "é": "e", "í": "i", "ó": "o", "ú": "u", "ü": "u",
    "Á": "A", "É": "E", "Í": "I", "Ó": "O", "Ú": "U", "Ü": "U"
};

function removeAccents (stringArg) {

    console.log(stringArg);

    var returnStr = stringArg.replace(accents, function(match) {

       return translate[match];

    });

    return returnStr;
}

我通过jQuery将removeAccents函数绑定到DOM文本输入,如下所示:

jQuery(document).ready(function () {

    jQuery(".strReplace").keyup(function (e) {

        var translatedStr = removeAccents(jQuery(this).val());
        // more code to execute

    });

});

但是,当我输入输入字段时,程序会中断下一个控制台输出:

"M"
undefined
"Uncaught TypeError: Cannot read property 'replace' of undefined"

"Mó"
undefined
"Uncaught TypeError: Cannot read property 'replace' of undefined"

正如您在输出中看到的那样,字符串值将传递给stringArg变量,但是当我尝试操作它时,该变量未定义。我错过了什么?

提前感谢您的回复。

0 个答案:

没有答案