【问题标题】:how to Replace each character with other character in Jquery如何用Jquery中的其他字符替换每个字符
【发布时间】:2011-09-13 02:09:11
【问题描述】:

我正在尝试制作一个 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"));

    });
});

【问题讨论】:

  • jquery 选择器用于选择 dom 元素。不要从文本框中选择值。您应该使用val() 函数来获取值
  • RE:“这对吗?”那么,你在你的应用程序中尝试过吗?
  • 我将代码更改为使用的 val() 函数,但不确定是否正确..

标签: javascript jquery string replace


【解决方案1】:

首先$("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);

【讨论】:

  • 这对于给定的示例来说是可以的,但是如果没有仔细完成,它对于具有传递替换的解决方案将不起作用(如果它最终是循环的,它根本不起作用)。想象一下,如果你也有一个规则替换“o”,但你先替换a->o,你会明白我的意思。
  • @Platinum,好点子。在这种情况下有效,但评论很好。
【解决方案2】:

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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多