Jquery:如果用户键入特定单词,空格问题,则替换单词

时间:2012-10-17 12:14:56

标签: jquery

我需要这样做,如果用户键入“魁北克”这个词的任意组合,它会自动将其重命名为魁北克市,这在任何情况下都需要发生。我遇到的问题是,如果单词中有任何空格,它将无法正常工作。我尝试修剪字符串,但它无法正常工作。这是我的代码,如果有任何我可以改进的话,请告诉我。

     $('#location').on('blur', function() {
            var field = $('#location').val();
            $.trim(field);
            switch (field) {
                case 'Quebec' :
                case 'QUEBEC' :
                case 'Québec' :

                    $('#location').attr('value', 'Quebec City');
                    break;    
            }
        })

        $('#location').on('keypress', function() {
            var field = $('#location').val();
            $.trim(field);
            switch (field) {
                case 'Quebec' :
                case 'QUEBEC' :
                case 'Québec' :

                    $('#location').attr('value', 'Quebec City');
                    break;    
            }
        })


​

3 个答案:

答案 0 :(得分:1)

您应该将值返回field变量:

field = $.trim(field);

此外,我建议您使用keyup事件代替keypress

答案 1 :(得分:1)

这样的事情应该做,或者至少是一个好的开始:

$('#location').on('keyup blur', function() {
    var field = this.value,
        test = field.toLowerCase().replace('é','e').indexOf('quebec');

    if (test!=-1 && field.slice(test, test+11)!='Quebec City') {
       this.value = field.substring(0, test) + "Quebec City" + field.substring(test+6);
    }
});

FIDDLE

答案 2 :(得分:0)

适用于field = field.replace(/ /g, "");

这是一个有效的演示http://jsfiddle.net/KyGKf/1/