如何用Jquery中的其他字符替换每个字符

时间:2011-06-11 15:24:51

标签: javascript jquery string replace

我正在尝试创建一个textarea输入字段,该字段会自动将特定字符替换为不同的字符;例如:当用户键入“a”字符时,它应自动替换为“o”字符。我是jquery的新手,所以请告诉我以下代码有什么问题:

$(function() {
    $('#myTextBox').keyup(function() {
        $("a").replaceWith( "o" );
        $("z").replaceWith( "N" );
        $("y").replaceWith( "M" );
        $("p").replaceWith( "f" );
        $("v").replaceWith( "K" );
        $("b").replaceWith( "P" );
    });
});

感谢您的帮助,谢谢

修改

谢谢大家,以下工作按预期进行:

$(function() {
    $('#myTextBox').keyup(function() {

        $(this).val($(this).val().replace(/a/g, "o"));

    });
});

2 个答案:

答案 0 :(得分:4)

首先$("a")实际上是针对页面上的所有锚元素,所以我猜这不是你想要的(其他人甚至不存在,除了p,所以你的选择器什么都不返回)。其次,您可以使用regular expressions to do your replace而无需任何特殊的jQuery代码。

而不是:

$("a").replaceWith( "o" );

尝试:

$(this).val($(this).val().replace(/a/g, "o"));

要打破这一点:

var oldValue = $(this).val();
var newValue = oldValue.replace(/a/g, "o");

// Set to new value
$(this).val(newValue);

答案 1 :(得分:3)

http://jsfiddle.net/2fYdT/69/

$(document).ready(function() {
    $(".normal").each(function() {
        var text = $(this).html();
        text = text.replace(/"/g, '');
        $(this).html(text);
    });
});

这样的事情:

<div class="normal">Lorem "ipsum "dolor"</div>

结果:

<div class="normal">Lorem ipsum dolor</div>