0

jquery スクリプトで問題が発生しました。

ここにコードがあります

<script>

 $(function()
{

    $('#suivi').keyup(function(e){
    var code = e.which ? e.which : e.keyCode;
    var input = this.value;
    console.log(input);
          if (input == "ABS") {
       this.value = "Le débiteur est absent, nous le relançons par courrier. Nous agendons également une visite domiciliaire s'il s'avérait que ce dernier restait sans réponse."

    };

});

});



</script>

問題は、省略形が完全な単語に置き換えられることです。たとえば、tel は電話に置き換えられます。問題は、このコードがテキストエリアが空の場合にのみ機能することです。最初だけでなく、多くの略語を追加できるようにしたいと思います。

それを行う方法はありますか?

また、私は ckeditor をよく使用しますが、textarea が Ckeditor でプラグインされていると、機能しません。

それを変更する方法はありますか?

どんな種類の助けも大歓迎です。

敬具。

SP。

4

2 に答える 2

3

オブジェクトを使用して頭字語/略語を指定されたフレーズにマップし、略語が検出された場合は、その略語を完全なフレーズに置き換える次のことをお勧めします。

var abbreviations = {
    'PSI': 'pounds per square inch',
    'TLA': 'three-letter acronym'
};

function abbrReplace(el, abbrs) {
    if (!el || !abbrs) {
        return false;
    }
    else {
        var val = el.value,
            words = val.split(/\s/);
        for (var i = 0, len = words.length; i<len; i++) {
            if (abbrs[words[i]]) {
                words[i] = abbrs[words[i]];
            }
        }
        return words.join(' ');
    }
}
document.getElementById('test').onblur = function(){
    this.value = abbrReplace(this, abbreviations);
};

JSフィドルデモ

ただし、これは大文字と小文字が区別されるため、上記では、省略形tlaは一致せず、一致するだけTLAです。

于 2012-10-31T11:25:03.567 に答える
0
$(function() {
    $('#suivi').on('keyup', function(e){
       var code = e.which; //normalized by jQuery
       if (this.value.toLowerCase().indexOf("abs")!=-1) {
           this.value = this.value.replace(/ABS/g, 'Anal Bitch Slapper');
       }
    });
});

値全体を置き換えないでください。略語を文字列内で表すものに置き換えてください。グローバル置換には標準の正規表現が必要です。上記の文字列置換は、最初に出現したものを置き換えるだけです。

于 2012-10-31T11:06:52.580 に答える