jQuery多个字符替换

时间:2010-07-28 19:51:02

标签: jquery replace

我有一个非常简单的问题。不幸的是,我找不到答案。

我刚刚制作了两个简单的输入函数

Input 1:<br /><input type="text" id="i1" name="i1" />
Input 2:<br />
<input type="text" id="i2" name="i2" />

当更改输入1时,我想让结果显示在输入2中。此外,我想要替换一些字符,并且我希望将字符设置为小写(以便将其用作网址)。

所以我做了以下jQuery代码:

$("#i1").keyup(function() {
var ptitle = $("#i1").val();
$("#2").val(ptitle.replace(" ", "-").toLowerCase());
});

这很好用,除非我输入的字符串有多次相同的字符要替换。然后它只会在第一次更换。

例如:当我输入输入1:'关于这家公司'时,它将导致输入2:'about-this company'。它应该是:'关于这个公司'。有谁知道我的jQuery代码出了什么问题?

3 个答案:

答案 0 :(得分:9)

这样的事情:

$("#i1").keyup(function() { 
    var ptitle = $(this).val(); 
    $("#i2").val(ptitle.replace(/\s/g, "-").toLowerCase()); 
});

答案 1 :(得分:2)

这是因为replace需要一个全局标志来替换多个实例。

试试这个

$("#i1").keyup(function() { var ptitle = $("#i1").val(); 
       $("#2").val(ptitle.replace(/ /g, "-").toLowerCase()); 
});

这是一个非常接近的问题,给你一个很好的答案:
Replacing spaces with underscores in JavaScript?

答案 2 :(得分:0)

这对我有用

$(function(){
  $("#i1").keyup(function() {
    var ptitle = $("#i1").val();
    $("#i2").val( ptitle.replace(/ /g,"-").toLowerCase() );
  });
});