1

ユーザーがコンテンツを入力した後、テキストエリアで文字列置換を実行しようとしていますが、何も試してもうまくいきません。どんな助けでも大歓迎です。これは私がいる場所です:

<textarea id="field_id_29"></textarea>

$("#field_id_29").bind("change keyup input",function(){
     var text = $("#field_id_29").val();
     text = text.replace(/source/g,"www")
     $("#field_id_29").val(text);
});

www-sourcewwwに置き換える必要があります。

jsFiddle はこちら: http://jsfiddle.net/6RNY2/

4

4 に答える 4

11

これを試して、

$("#field_id_29").change(function(){
    var text = $(this).val();
    var regexp = /www-source/gi;
    if ( text.match(regexp) ){      
        text = text.replace(/www-source/g,"www");
        return $(this).val(text);
    }
    return false;
});

フィールドが変更されると、値を取得し、正規表現と比較して、一致する場合はテキストを置き換えて終了し、そうでない場合は単に戻ります。

于 2012-10-24T17:30:35.440 に答える
2

これを試して、

ライブデモ

[$("#field_id_29").bind("keyup", function() {
    var text = $(this).val();
    text = text.replace(/source/g, "www")
    $(this).val(text);
});​
于 2012-10-24T17:33:24.227 に答える
2

jsfiddle

        $("#field_id_29").bind("change keyup input",function(){    
            this.value= this.value.replace(/www-source/g,"www");                 
        });
​

注:関数内では、これは textarea の参照であるため、id を使用して textarea 値にアクセスする代わりに、this.value を直接使用します。

于 2012-10-24T17:29:42.233 に答える
1

コードは機能します。jsfiddle で Mootools の代わりに jQuery を使用するだけで済みます。おそらくchangeイベントを使用して、テキストエリアが更新された後にのみテキストを置き換えるようにしてください。

于 2012-10-24T17:30:37.403 に答える