在TextArea中替换jQuery字符串

时间:2012-10-24 17:27:14

标签: jquery regex

我正在尝试在用户输入内容后在textarea中进行字符串替换,而我尝试过的任何工作都没有。任何帮助将不胜感激。这就是我所在的地方:

<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-source 替换为 www

jsFiddle在这里:http://jsfiddle.net/6RNY2/

4 个答案:

答案 0 :(得分: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;
});

当字段更改时,我们获取值,比较是否与正则表达式相比,如果我们有匹配,我们替换文本,我们就完成了,否则我们只是返回。

答案 1 :(得分:2)

jsfiddle

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

注意:在函数内部这是textarea的引用,因此您直接使用this.value而不是使用id访问textarea值。

答案 2 :(得分:2)

试试这个,

<强> Live Demo

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

答案 3 :(得分:1)

您的代码有效,您只需要在jsfiddle中使用jQuery而不是Mootools,也可能只使用更改事件,以便仅在textarea更新后才替换文本